flere

, flere tilfælde node.js app i paas ved hjælp af redis pub /afrika,,,,, 152,,,,,,,,, 27,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, hvis du valgte paas som vært for din ansøgning, du sikkert har eller vil have dette problem: din app anvendes til små "containere" (kendt som  , dynos, i heroku, eller  , tandhjul, i openshift) og du vil skala.  , med henblik på at gøre så du øge antallet af beholdere og alle tilfælde af din app er ret meget at løbe i en virtuel maskine.det er godt for en række årsager, men det betyder også, at de tilfælde deler ikke hukommelse.  , i denne lektion, jeg vil vise dig, hvordan vi kan løse dette besvær.,,, at du valgte paas med, går jeg ud fra, at du har mere i tankerne.måske din hjemmeside allerede været vidne til den slashdot virkning, eller ønsker du at forberede dig på det.uanset, at de tilfælde, kommunikere med hinanden, er ganske enkel. husk på, at i den artikel, jeg vil antage, at du allerede har en node.js app skriftlige og løbe.,,, trin 1: redis opsætning, først skal du forberede dig redis database.jeg kan godt lide at bruge redis at gå, fordi det her er virkelig hurtigt, og hvis du bruger heroku er der et tillæg (selv om din konto, skal have et kreditkort, der tildeles det).der er også redis sky, der omfatter   mere oplagring og backups.,, der fra den heroku fælde er ganske enkelt: vælg tillægget på heroku tilføje ‑ på side og vælge   redis sky   eller   redis gå,   eller anvende en af følgende kommandoer (det bemærkes, at den første er for redis tilbage, og den anden er for redis sky):,, $heroku addons: tilføje redistogo $heroku addons: tilføje rediscloud, trin 2: oprettelse node_redis, på dette punkt, er vi nødt til at indføre de nødvendige node modul til  , package.json, fil.vi vil bruge den anbefalede node_redis modul.det svarer til, package.json, sagsakter i den tilhørende sektion:, "node_redis": "11. x", hvis du vil, kan du også, hiredis, et meget avanceret bibliotek skrevet i c, som  , node_redis, vil anvende, hvis det er til rådighed:, "hiredis" "0. x", afhængigt af hvordan du har skabt din redis database, og som paas udbyder, du bruger, forbindelsen fælde vil se lidt anderledes.du har brug for, er vært, havn, brugernavn, og kodeord, for din forbindelse.,, heroku,, heroku butikker alt i ud variabler som url - adresser.du er nødt til at få de oplysninger, de har brug for fra dem ved hjælp af node, url, modul (ud var for redis gå, process.env.redistogo_url, og for redis sky, proces. env. rediscloud_url,).denne kodeks er på toppen af deres vigtigste ansøgning:,, var redis = kræver ('redis) var url = kræver ('url) var redisurl = url. analysere (your_config_var_here) var klient = redis. createclient (redisurl.host, redisurl. port); klient.) (redisurl.). split (:) [1]);,, og andre, hvis du skabte database i hånden eller bruge en tjenesteyder, andre end heroku, du skulle have den forbindelse muligheder og rettigheder allerede, så brug dem:,, var redis = kræver ('redis) var klient = redis. createclient (your_host, your_port); klient.) (your_password), efter det kan vi begynde at arbejde på kommunikation mellem tilfælde,.,,, trin 3: sende og modtage data, den enkleste eksempel sender oplysninger til andre instanser, som du harer lige begyndt.f.eks. kan du vise denne information i administrationen panel.,, før vi gør noget, skabe en forbindelse, der hedder, client2,.jeg vil forklare, hvorfor vi har brug for det senere.,, lad os starte med at sende det budskab, at vi begyndte.det er gjort med, publish(), metode til kunden.det tager to argumenter: den kanal, vi ønsker at sende et budskab til og meddelelsens tekst:,, klient. offentliggøre ('instances "," start "), er det alt hvad du har brug for at sende en besked.vi kan lytte til meddelelser i budskab, begivenhed kontaktperson (meddelelse, som vi kalder det på vores anden kunde):,, client2. ('message, funktion (kanal, besked) {,,, det bør vedtages de samme argumenter, som vi går til, publish() metode.lad os vise denne information på konsollen:,, hvis (channel = = "eksempler") og (besked = = "start") konsol. log (den nye instans i gang! ").}), den sidste ting at gøre er at abonnere på kanal, vi vil bruge:,, client2. abonnement ('instances), brugte vi to kunder til det, fordi når du ringer, subscribe(), om kunden, forbindelsen er slået til, en abonnent, tilstand.fra det tidspunkt, den eneste metoder kan du kalde på redis server er enig, og afmelding.så hvis vi er det, en abonnent, mode, kan vi publish(), beskeder.,, hvis du vil, kan du også sende et signal, når den f.eks. er blevet lukket ned, du kan lytte til det, sigterm, omstændigheder og sende et budskab til den samme kanal:,, proces. ('sigterm, funktion () {klient. offentliggøre ('instances "," stop "); proces. exit().}), at håndtere denne sag på en besked,, kontakt tilføje det, andre, hvis der:,, andre, hvis (channel = =" eksempler ") og (besked = =" stop ")) konsol. log ('instance stoppet!"),,, så det ser ud, som om det bagefter:,, client2. ('message, funktion (kanal, meddelelse) (hvis (channel = = "eksempler") og (besked = = "start") konsol. log (den nye instans i gang! "); andre, hvis (channel = = "eksempler") og (besked = = "stop") konsol. log ('instance stoppet! ");)), skal det bemærkes, at hvis du tester på vinduerne, og det støtter ikke, sigterm, signal.,, at teste det lokalt, starte din app - - et par gange, og se, hvad der sker i panelet.hvis du ønsker at teste afslutning budskab, ikke udstede  , ctrl + c,   kommando i terminalen i stedet bruge, dræbe, kommando.bemærk, at dette ikke er støttet på vinduer, så du ikke kan se det, først bruge, ps, ordre til at tjekke hvad id - processen har rør den, grep, for at gøre det lettere:,, $ps - aux



Previous:
Next Page: