sql >> Databasteknik >  >> NoSQL >> Redis

Realtidsapplikationsnybörjare - Node.JS + Redis eller RabbitMQ -> klient/server hur?

Arkitektoniskt är båda dina val desamma som att lagra data i en Oracle-databasserver för att ett annat program ska kunna hämtas.

Både RabbitMQ och Redis-lösningen kräver att dina appar ansluter till en mellanliggande server som hanterar datakommunikationen. Redis är mest likt Oracle, eftersom det helt enkelt kan användas som en beständig databas med ett nätverks-API. Men RabbitMQ är lite annorlunda eftersom MQ Broker egentligen inte är ansvarig för bestående data. Om du konfigurerar det rätt och använder rätt alternativ när du publicerar ett meddelande, kommer RabbitMQ faktiskt att bevara data åt dig men du kan inte få ut informationen förutom som en del av den normala meddelandeköprocessen. Med andra ord, RabbitMQ är till för att kommunicera meddelanden och erbjuder bara uthållighet som ett sätt att återhämta sig från nätverksproblem eller systemkrascher.

Jag skulle föreslå att du använder RabbitMQ och vilka programmeringsspråk du redan är bekant med. Eftersom M i LAMP vanligtvis tolkas som MySQL, betyder det att du antingen inte använder MySQL alls, eller bara använder det för långtidslagring av data, inte för realtidskommunikation.

Sajten RabbitMQ har en enorm mängd dokumentation om att bygga appar med AMQP. Jag föreslår att efter att du har installerat RabbitMQ läser du igenom dokumenten för rabbitmqctl och skapa sedan en vhost att experimentera i. På så sätt är det lätt att rensa upp i dina experiment utan att återställa allt. Jag föreslår också att du endast använder ämnesutbyten eftersom du kan efterlikna beteendet för direkt- och fanout-utbyten genom att använda jokertecken i routing_key. Kom ihåg att du bara publicerar meddelanden till utbyten och du får bara meddelanden från köer. Utbytet ansvarar för att mönstret matchar meddelandets routing_key med köns binding_key för att bestämma vilka köer som ska få en kopia av meddelandet. Det är värt besväret att lära sig hela AMQP-modellen även om du bara planerar att skicka meddelanden till en kö med samma namn som routing_key.

Om du bygger din klient i webbläsaren, och du vill bygga en prototyp, bör du överväga att bara använda XHR idag, och sedan gå över till något som Kamaloka-js som är en ren Javascript-implementering av AMQP (AMQ-protokollet) som är standardprotokollet som används för att kommunicera till en RabbitMQ-meddelandeförmedlare. Med andra ord, bygg det med det du vet idag, och snabba sedan upp det senare vilket något (AMQP) som har en långsiktig framtid i din verktygslåda.



  1. Hur startar man ett mongodb-skal i dockercontainer?

  2. MongoDB Textsökning OCH flera sökord

  3. hitta id för senaste underdokument infogat i mongoose

  4. Hur man återansluter redis-klienten efter omstart/skalning av redis-servern