sql >> Databáze >  >> NoSQL >> Redis

Nováček aplikací v reálném čase - Node.JS + Redis nebo RabbitMQ -> klient/server jak?

Z architektonického hlediska jsou obě vaše možnosti stejné jako ukládání dat na databázový server Oracle, aby je mohla načíst jiná aplikace.

Jak RabbitMQ, tak řešení Redis vyžadují, aby se vaše aplikace připojily ke zprostředkujícímu serveru, který zpracovává datovou komunikaci. Redis je nejvíce podobný Oracle, protože jej lze jednoduše použít jako trvalou databázi se síťovým API. Ale RabbitMQ je trochu jiný, protože MQ Broker není ve skutečnosti zodpovědný za perzistence dat. Pokud jej správně nakonfigurujete a použijete správné možnosti při publikování zprávy, pak RabbitMQ ve skutečnosti zachová data za vás, ale nemůžete je dostat ven, jinak než jako součást normálního procesu řazení zpráv do fronty. Jinými slovy, RabbitMQ je pro komunikaci zpráv a nabízí pouze persistenci jako způsob zotavení ze síťových problémů nebo selhání systému.

Navrhoval bych použít RabbitMQ a jakékoli programovací jazyky, které již znáte. Protože M v LAMP je obvykle interpretováno jako MySQL, znamená to, že byste MySQL buď vůbec nepoužívali, nebo jej používali pouze pro dlouhodobé ukládání dat, nikoli pro komunikaci v reálném čase.

Stránka RabbitMQ má obrovské množství dokumentace o vytváření aplikací pomocí AMQP. Navrhuji, abyste si po instalaci RabbitMQ přečetli dokumentaci pro rabbitmqctl a poté vytvořte vhost experimentovat. Tímto způsobem je snadné experimenty vyčistit, aniž byste vše resetovali. Doporučuji také používat pouze výměny témat, protože můžete emulovat chování přímých výměn a výměn fanout pomocí zástupných znaků v routing_key. Pamatujte, že zprávy publikujete pouze výměnám a zprávy přijímáte pouze z front. Výměna je zodpovědná za to, že se vzor shoduje s routing_key zprávy a vazebným_klíčem fronty, aby určil, které fronty by měly obdržet kopii zprávy. Vyplatí se naučit se celý model AMQP, i když plánujete posílat zprávy pouze do jedné fronty se stejným názvem jako routing_key.

Pokud vytváříte svého klienta v prohlížeči a chcete sestavit prototyp, měli byste zvážit použití XHR dnes a poté přejít na něco jako Kamaloka-js, což je čistá Javascriptová implementace AMQP (protokol AMQ), který je standardní protokol používaný ke komunikaci s zprostředkovatelem zpráv RabbitMQ. Jinými slovy, vytvořte jej s tím, co znáte dnes, a později to urychlete (AMQP), které má ve vaší sadě nástrojů dlouhodobou budoucnost.



  1. Ekvivalent runCommand pro nodejs-native-mongodb

  2. Jak přimět junit testy používat vložený mongoDB v aplikaci springboot?

  3. Online zálohy Apache HBase s CopyTable

  4. MongoDB vytáhne prvek z pole do hloubky dvou úrovní