我使用節點應用程序純粹用於使用Redis PubSub的socket.io通道,目前我已將它分散到3臺機器上,並由其中一臺機器上的nginx負載平衡支持。Phoenix應用程序如何針對多臺機器量身定製渠道規模?使用HAProxy?如何將消息廣播到所有節點?
我想用Phoenix應用程序替換這個節點應用程序,而且我仍然是新來的erlang/Elixir世界,所以我仍然沒有想到單個Phoenix應用程序如何跨越多臺機器。谷歌搜索所有可能的縮放和負載平衡條款什麼都沒有產生。
的1.0 release notes提到這對於渠道:
即使在計算機集羣,您的信息通過節點自動
1)廣播所以我基本上部署應用到N臺服務器,在其中的每一個啓動牛仔服務器,類似於我如何處理節點和他們我把他們綁定nginx/HAProxy?
2)如果是這種情況,如發行說明中所述,通道消息如何在所有節點上廣播?
編輯3:以Theston答案,澄清,沒有這樣的東西作爲鳳凰的應用,而是,藥劑/二郎應用程序,我更新了我的搜索字詞,發現關於擴展和負載均衡一些有趣的結果。
- 一個自由廣泛書:Stuff Goes Bad: Erlang in Anger
- 二郎池庫recommendations
編輯2:從Elixir's creator發現這一點:
藥劑提供了一種用於處理分組和全球進程的便利(共享節點之間),但仍然可以使用外部庫(如Consul或Zookeeper)進行服務發現,或者依賴HAProxy進行負載平衡基於HTTP的前端。
編輯:Connecting Elixir nodes on the same LAN是提到藥劑間通信的第一個,但它不涉及到鳳凰本身,而不是它如何與負載均衡相關,而且每鳳凰節點與另一通信清晰。
太棒了,我的想法是Phoenix = Rails。更新了我的搜索條件,甚至找到了關於這個主題的書http://www.erlang-in-anger.com/ –
很高興我可以幫助:)還有另外兩個令人敬畏的書我推薦https://www.manning .com/books/elixir-in-action和https://pragprog.com/book/phoenix/programming-phoenix – TheStoneFox