我使用节点应用程序纯粹用于与Redis PubSub的socket.io通道,目前我将它分布在3台机器上,由其中一台机器上的nginx负载平衡支持.
我想用Phoenix应用程序替换这个节点应用程序,我仍然是erlang/Elixir世界的新手,所以我仍然没有弄清楚一个Phoenix应用程序如何跨越多台机器.谷歌搜索所有可能的缩放和负载平衡术语没有产生任何结果.
在1.0版本说明提到这一点对于渠道:
即使在一组计算机上,您的消息也会自动在节点间广播
1)所以我基本上将我的应用程序部署到N个服务器,在每个服务器中启动Cowboy服务器,类似于我如何处理节点,我将它们绑定到nginx/HAProxy?
2)如果是这种情况,如何在发布说明中提到的所有节点上广播频道消息?
编辑3:采用Theston的答案澄清了凤凰应用程序没有这样的东西,而是Elixir/Erlang应用程序,我更新了我的搜索术语,并发现了一些有关缩放和负载平衡的有趣结果.
编辑2:从Elixir的创建者那里找到:
Elixir为进程分组和全局进程(节点之间共享)提供了便利,但您仍然可以使用Consul或Zookeeper等外部库进行服务发现,或者依靠HAProxy为基于HTTP的前端进行负载均衡.
编辑:在同一局域网上连接Elixir节点是第一个提到Elixir通信的节点,但它与Phoenix本身无关,并且不清楚它与负载平衡和每个Phoenix节点与另一个节点通信的关系.
elixir publish-subscribe websocket socket.io phoenix-framework