首页 > 解决方案 > 在扩展系统时,具有一致散列的负载分布是否比标准散列更有优势?

问题描述

我知道,在缓存服务器或(分片)数据库服务器的情况下,使用一致的散列进行负载分配比通常的基于键的散列提供了显着优势,因为在添加/删除服务器时,由于重新散列而需要在服务器之间移动的数据被最小化.

但是,如果我们考虑应用程序服务器或 Web 服务器,它们通常被设计为无状态的,因此不存储任何与用户/会话相关的数据,那么一致性哈希在这里有什么优势吗?如果是,这里考虑的数据是什么,或者我遗漏了什么?

标签: load-balancingsystem-designconsistent-hashing

解决方案


如果服务器真的是无状态的,那么是的,没关系。然后你优化其他参数,比如到客户端的距离。

但是对于处理一些业务逻辑的服务器来说,它的缓存中有一个隐含的状态。服务器必须有一些本地或远程的持久存储(我们称之为数据库),否则如果客户端已经拥有所有信息,则不需要发出请求。

数据库或应用服务器的缓存已经预热,每次系统扩展或缩减时都必须重新初始化。即使数据库也是分布式的,应用服务器与数据库特定分片的连接也可能(或不能)是一种状态。


推荐阅读