8

所以这个问题让我烦恼,实际上我不需要这种规模,我只是好奇而已。 Recently Chris Mccord got 2 million persistent connections in a single box using Elixir/Phoenix。如果我有3个箱子在集群中,每一个处理200万个持久连接:如何通过Elixir/Phoenix群集分配永久连接?

  1. 这是否意味着负载平衡器必须保持600万个持久连接或者是它可能只是向前连接到后端服务器并关闭负载平衡器上的连接?
  2. 我是否必须在客户端使用一些逻辑来分配连接,并避免单个入口点?像box1.foo.com,box2.foo.com,box3.foo.com,并告诉客户端连接到其中之一?

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

谢谢。

回答

5

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