2012-03-22 10 views
5

Używam obecnie Socket.IO z magazynem redis.Socket.IO with RabbitMQ?

Używam z nim funkcji Room.

Więc jestem całkowicie w porządku z pokoju join (zapisz)

i pozostał (wypisz) z Socket.IO.

po prostu zobaczyć tę stronę

http://www.rabbitmq.com/blog/2010/11/12/rabbitmq-nodejs-rabbitjs/

I odkryli, że niektórzy ludzie używają Socket.IO z RabbitMQ.

Dlaczego korzystanie z samego Socket.IO nie jest wystarczająco dobre?

Czy jest jakiś dobry powód, aby używać Socket.IO z rabbitMQ?

Odpowiedz

12

SocketIO to przeglądarka -> mechanizm transportu serwera, podczas gdy RabbitMQ jest serwerem -> komunikatem serwera.

Te dwa elementy można zaimplementować razem, aby stworzyć bardzo elastyczny system w scenariuszach, w których podróż użytkownika składa się z wiadomości rozpoczynającej życie w przeglądarce i kończącej się w, powiedzmy, pewnej warstwie trwałości (takiej jak baza danych).

Wiadomość zostanie przetransportowana na serwer WWW przez socketIO, a następnie, zamiast serwera WWW odpowiedzialnego za utrwalanie wiadomości, zostanie wysłana do kolejki Rabbit i pozostawić inny proces odpowiedzialny za jej utrzymanie. W ten sposób serwer internetowy może powrócić do swoich obowiązków związanych z serwowaniem sieci i, co najważniejsze, zmniejszyć obciążenie.

+0

Dzięki temu RabbitMQ może odciążyć niektóre ciężkie ładunki od trwałych wiadomości. Czy polecasz używanie RabbitMQ przed Socket.IO? W ten sposób Socket.IO może być wysoce skalowalny z mniejszymi klastrami serwerów Socket.IO, ale z klastrami serwerów RabbitMQ. Czy jestem na dobrej drodze? – InspiredJW

+0

Jeśli masz na myśli, że "RabbitMQ przed Socket.IO" ma farmę sieciową, która używa SocketIO do pośrednictwa żądań od klienta, a następnie używa klastra RabbitMQ do upuszczania wiadomości przeznaczonych dla trwałości, a następnie ma osobny zestaw usługi, które pobierają od RabbitMQ i odpowiednio przechowują wiadomości, a następnie tak ;-) –

4

Spójrz na SockJS http://sockjs.org.

  1. Jest wykonana przez zespół RabbitMQ
  2. prościej niż Socket.io
  3. Istnieje serwer Erlang dla SockJS

Poza tym, nie jest to projekt eksperymentalny wewnątrz zespołu RabbitMQ że zamierza dostarczyć wtyczkę SockJS dla RabbitMQ.

+0

byłby zainteresowany uzyskaniem więcej informacji na temat tego eksperymentalnego projektu. – skyork

+1

Oto oficjalne informacje o wydaniu: http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/ – Marek