请求从我的两个亚马逊节点进入相同的后端节点。 我想弄清楚为什么?
通过谷歌search,我发现“哈希是使用客户端地址的C类networking地址”
任何人都可以解释我背后的ip_hashalgorithm,如果可能的话,一些例子。
非常简短的答案是:一致性是为什么。 散列algorithm使它最终陷入同一个桶中,而它试图解决的问题是“确保同一个客户端总是与同一个后端对话,但仍然试图在后端保持相当均匀的分布”。
它等价于其他IP散列algorithm。 在一个非常基本的层面上:
hash % backendsselect一个hash % backends 通过这样做,你的客户是一个相当平均的客户,但是你应该能够期望客户对每一个请求都保持对话。 例如,如果每个服务器上都存储了会话数据,则这非常有用。
如果你只是想将负载分散到你的后端,并且没有什么可以担心的话, 循环是一个更好的select – 你会得到一个更均匀的传播(即使在大多数情况下只是勉强一点 – ip_hash工程很好) – 它会消耗略less的资源,因为没有花费时间散列的客户端地址。