0 nginx
来自我的两个亚马逊节点的请求进入同一个后端节点。我想弄清楚为什么?
通过谷歌搜索,我发现“散列是使用客户端地址的 C 类网络地址完成的”
如果可能的话,任何人都可以用一些例子来解释我 ip_hash 背后的算法。
非常简短的回答:coincodence 就是原因。散列算法使它最终出现在同一个存储桶中,它试图解决的问题是“确保同一个客户端总是与同一个后端通信——但仍然尝试在我的后端保持相当均匀的分布”。
它与其他 IP 散列算法等效。在一个非常基本的层面上:
hash % backends
通过这样做,您完成的是相当均匀的客户分布 - 但您应该能够期望客户为每个请求保持与同一个后端通信。例如,如果您将会话数据存储在每个服务器上,这将非常有用。
如果您只想将负载分散到后端,并且就您的应用程序而言无需担心;Round Robin 是一个更好的选择——你会得到更均匀的传播(即使在大多数情况下只是轻微的——ip_hash 效果很好)——并且由于不花时间散列客户端地址,它会消耗更少的资源。
归档时间: |
|
查看次数: |
1965 次 |
最近记录: |