【问题标题】:Elixir/Phoenix geographical load balancerElixir/Phoenix 地理负载均衡器
【发布时间】:2018-02-03 01:56:16
【问题描述】:

我正在尝试使用 elixir/phoenix 制作一个地理负载平衡器,这样当客户端最初连接时,它会选择最近的(最少 ping/延迟)服务器并将该服务器用于未来的连接。

假设客户端在get "/balance", PageController, :index 到达平衡器,并且在我的数据库中我有2 个服务器:server1.domain.comserver2.domain.com。是否可以以某种方式将客户端的连接(或 ping)传递到具有 elixir 后端的两个服务器?

我大概可以在前端做逻辑,用js ping,然后将值返回到后端进行存储。但是,我宁愿把所有东西都放在后端。

感谢任何有关负载平衡的提示或建议,因为我不能 100% 确定这是否是正确的做法。谢谢!

【问题讨论】:

  • 如何托管应用程序?云提供商有工具可以在 DNS 层解决这个问题,例如:Route53 Latency Policy

标签: elixir load-balancing phoenix-framework latency


【解决方案1】:

好吧,如果您只有 1 个负载均衡器,那没有多大意义。例如,您的负载均衡器在美国,而您在美国和欧洲都有一个应用程序服务器。当来自欧洲的访问者访问您的站点时,他将首先点击美国的负载均衡器,然后连接到欧洲(甚至美国,没关系)的应用程序服务器。你不会从中获得任何速度。

我猜您需要在 DNS 级别上进行地理路由,以便访问者直接访问离他最近的服务器(可以是负载均衡器或应用程序服务器)。

我还没有深入研究这个话题,但一个很好的起点是在谷歌上搜索geographical DNS load balancing,看看它会把你带到哪里。

也许对这个主题更有经验的人可以在技术方面给出更详细的答案,但也许你也可以从建议的谷歌搜索中找到你需要的东西。

【讨论】:

  • 嘿@Philipp,感谢您的回复。是的,我已经阅读了有关 DNS 负载平衡的信息,并希望将其应用到登录页面本身,但是当用户尝试登录其帐户以使用内部平衡(以便更好地控制流量)时。
  • 您无法通过 DNS 控制哪些流量?
  • @webdeb 作为住在伊斯坦布尔的人,我实际上已经习惯了。黄金法则,不要与高峰时间冲突:)
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
  • 2013-08-26
相关资源
最近更新 更多