Próbuję porównać kanały Phoenix z nowym Rails ActionCable, jeśli chodzi o pracę z WebSockets.W jaki sposób nadawanie z kanału Phoenix wpływa na klientów w innych węzłach?
Dla niektórych kontekstów, ActionCable wykorzystuje Redis do obsługi PubSub podczas nadawania komunikatu wszystkim klientom. Przykładowy scenariusz: 1 z 3 procesów szyny na oddzielnym węźle będzie mógł nadawać do klientów połączonych na wszystkich serwerach internetowych. Odbywa się to poprzez naciśnięcie przycisku Redis, który z kolei publikuje wszystkie serwery railsowe, które następnie przesyłają do wszystkich podłączonych klientów.
Ostatnio czytałem o połączeniach sieciowych 2 million websocket connections achieved by Phoenix.
Także ten klejnot: The Phoenix 1.0 Release Notes wspomnieć o tym dotyczące kanały:
Nawet na klastrze maszyn, wiadomości są nadawane w poprzek węzły automatycznie
Jak Phoenix może transmitować do klientów w węzłach? Czy używa on skrzynek pocztowych i/lub innej komunikacji międzyprocesowej pod maską?
Jest to podobne do pytania 2) w tym post.
Dzięki!
Dzięki! To wszystko brzmi świetnie. Ciekawi mnie, jak serwery internetowe wiedzą o sobie nawzajem, aby umożliwić transmisję rówieśników, ale zachowam to dla własnych badań. Wygląda na to, że ten model będzie miał zastosowanie również w kolejce roboczej. Prawdziwy framework pracujący w tle phoenix nie używałby redis jak sidekiq lub [exq] (https://github.com/akira/exq), ale używałby tego podejścia. – dimroc
To jest dla następnego czytelnika przechodzącego obok. Każdy węzeł (w tym przypadku serwer WWW) wie, jak komunikować się z innymi węzłami, ponieważ wdrożył aplikację jako system rozproszony. Kliknij poniższy link, aby uzyskać więcej informacji: http://benjamintan.io/blog/2014/05/25/connecting-elixir-nodes-on-the-same-lan/ – dimroc