如何在相同的群集中加载平衡相同的牛仔http服务器,因为它们具有相同的侦听器,可以侦听相同的请求端口?我不认为通常的循环方法可以在这种情况下使用负载均衡的循环方法,因为每个服务器的监听器在服务器启动时始终处于活动状态。我在这里缺少什么?
答案 0 :(得分:0)
我认为你缺少的是Cowboy没有在整个集群中注册它的全局监听器,它只在本地注册它们。发送到node1
的请求将使用node1
上运行的处理程序进行处理。 Cowboy不会在每个连接的节点上自动形成服务器群集。需要在每个节点上启动Cowboy服务器,它们将彼此独立运行。
管理负载平衡的最佳方法是使用反向代理,例如Nginx,并让它在整个群集中重定向请求。
如果您需要将请求路由到全局注册进程的“粘性会话”,那么您应该在Cowboy处理程序中进行查找(使用global:whereis_name/1
)并从那里通过群集路由消息。