来自我的两个amazon节点的请求进入同一个后端节点。我想弄清楚为什么?
通过谷歌搜索,我发现“散列是使用客户端地址的C类网络地址完成的”。
如果可能的话,有人能解释一下ip_hash背后的算法吗?
发布于 2011-10-31 06:07:03
最简单的答案是:缘由是巧合。哈希算法使它最终在同一个桶中结束,它试图解决的问题是“确保同一个客户端总是与同一个后端对话,但仍然试图在我的后端保持一个相当均匀的分布”。
它和其他IP哈希算法是一样的。在一个非常基本的层面上:
hash % backends选择后端您通过这样做所完成的任务是相当均衡地扩展您的客户端--但是您应该能够期望客户端对每个请求保持相同的后端对话。例如,如果您将会话数据存储在每台服务器上,这是非常有用的。
如果您只想将负载分散到后端,并且在应用程序的范围内没有任何需要担心的事情;Robin是一个更好的选择--您将得到更均匀的传播(尽管在大多数情况下,ip_hash工作得很好)--而且由于不花费时间散列客户端地址,它将消耗更少的资源。
https://serverfault.com/questions/326249
复制相似问题