一致性哈希算法原理
环形Hash空间。将数据和机器都hash到环上,数据映射到顺或逆时针离自己最近的机器中。
动态添加或删除的节点时,能够保持数据的原有的平衡性,只会影响到小部分数据,不会引起剧烈变动。
优点:一致性Hash算法可以和缓存机制配合起来使用。比如有一个服务getUserInfo(String userId)。设置了Hash算法后,相同的userId的调用,都会发送到同一个 Provider。这个 Provider 上可以把用户数据在内存中进行缓存,减少访问数据库或分布式缓存的次数。如果业务上允许这部分数据有一段时间的不一致,可以考虑这种做法。减少对数据库,缓存等中间件的依赖和访问次数,同时减少了网络IO操作,提高系统性能。