使用谷歌 Guava 实现 Java 一致性哈希 (用于根据哈希Hash值平均分配的场景)

心不动则不痛 提交于 2020-08-19 22:30:30

1. pom.xml 文件引入依赖

<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>29.0-jre</version>
</dependency>

2. java 代码

HashFunction hashFunction = Hashing.sha512();
int buckets = 2;   // 要平均分为几份
int hashCode = Hashing.consistentHash(hashFunction.hashString("XXXXXXXXXXXXXX", Charsets.UTF_8), buckets);
// 然后就可以对 buckets 取余, 平均分配
if (hashCode % buckets == 0) {
	// XXXXXXX
} else {
	// XXXXXXX
}

Guava 的一致性 Hash 算法, 只能保证大概的平均, 不能保证绝对的平均.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!