如何在Elixir/Phoenix群集中分发持久连接?

Esd*_*ink 8 erlang load-balancing cluster-computing elixir horizontal-scaling

所以这个问题困扰着我,我实际上并不需要这种规模,我只是好奇.最近,Chris Mccord使用Elixir/Phoenix在一个盒子里获得了200万个持久连接.如果我在一个集群中有3个盒子,每个盒子处理200万个持久连接:

  1. 这是否意味着负载均衡器必须保留600万个持久连接,或者是否可以将连接转发到后端服务器并关闭负载均衡器上的连接?
  2. 我是否必须使用客户端中的某些逻辑来分发连接并避免单个入口点?喜欢的东西box1.foo.com,box2.foo.com,box3.foo.com并告诉客户端连接到其中的一个?

我知道答案可能是特定于应用程序的,但是请您举例说明如何实现这种规模?同样,这只是一个思考练习,我无法在任何地方找到答案,我对水平缩放感兴趣.

谢谢.

Arg*_*ror 5

您将要使用多个负载均衡器(或完全跳过负载均衡器)并使用循环dns(或加权dns)在它们之间分配请求.这就是heroku的路由网格和aws的弹性负载平衡器的工作原理.你也可以在像f5负载均衡器上使用$$$