26得票4回答
我该如何使用Guava的Hashing#consistentHash?

我正在研究在一些Java代码中使用一致性哈希算法。 Guava Hashing库有一个consistentHash(HashCode, int)方法,但是文档相当缺乏。 我最初的想法是可以使用consistentHash()来进行简单的会话亲和力,在一组后端服务器之间高效地分配负载。 是否有...

19得票2回答
一致性哈希 vs. Rendezvous(HRW)哈希 - 有哪些权衡考虑?

互联网上有很多关于一致性哈希(consistent hashing)的内容,且有几种语言的实现可用。维基百科条目提到了另一个达成同样目的的算法: Rendezvous Hashing 这个算法似乎更简单,并不需要在环上添加副本/虚拟节点来处理不均匀的负载问题。正如文章所提到的那样,它似乎以...

15得票2回答
Memcache一致性哈希、集群、PHP代码、Ketama及相关内容

我已经尝试了一整天来理解并编写Memcache和PHP的代码,但我在某些地方感到困惑。我已经阅读了许多文章,几乎每一个与此相关的SO问题,但始终没有找到 确切的答案。 1)在PHP中创建一致性哈希密钥的代码将是什么?我需要安装什么库,我真正需要做什么?有什么好的文章可以参考吗? 2)假设我...

13得票7回答
Java和Python程序的相同一致哈希算法实现

我们有一个应用程序,Python模块将数据写入redis分片,Java模块将从redis分片读取数据,因此我需要为Java和Python实现完全相同的一致性哈希算法,以确保可以找到数据。 我在Google上搜索并尝试了几种实现,但发现Java和Python实现始终不同,无法一起使用。需要您的...

12得票2回答
在不同的机器上,MessageDigest 哈希的结果是不同的。

我在使用MessageDigest时遇到了问题,不同的计算机返回了不同的哈希值。 一个计算机运行着Windows Vista上的32位Java,另一个则是在Mac OS上运行64位Java。我不确定这是因为MessageDigest与机器有关,还是需要在某个地方明确指定字符编码,或者可能是其...

11得票2回答
Memcached一致性哈希在3个4个服务器宕机时无法工作

故事 我有3个正在运行的memcached服务器,我关闭其中一个或另一个来调查PHP-memcached在无法连接到服务器时的行为。 我在PHP中定义了4个服务器,其中1个用于模拟大部分离线的服务器(备用服务器)。 当我关闭1个服务器(=>还有2个在线),第三个->get()会给我...

11得票5回答
一致性哈希是如何工作的?

我正在尝试理解一致性哈希的工作原理。这是我想要跟进的文章,但我无法理解,首先我的问题是: 我理解,服务器被映射到哈希码的范围内,数据分配更加固定且查找变得容易。但是当一个新节点添加到集群中时,这如何处理? 示例Java代码不起作用,有没有简单的建议基于Java实现一致性哈希。 更新 ...

11得票2回答
Redis Cluster使用一致性哈希算法吗?

我正在使用redis集群3.0.1。 我认为redis集群使用一致性哈希。哈希槽类似于一致性哈希中的虚拟节点。Cassandra的数据分布与redis集群几乎相同,并且这篇文章称它是一致性哈希。 但是redis集群教程说redis集群不使用一致性哈希。 我错过了什么吗?谢谢。

10得票2回答
哈希与索引的区别

哈希和索引都是用于根据预定义的公式对数据进行分区。但我不理解两者之间的关键区别。 就像在哈希中,我们基于某个键值对将数据划分一样,在索引中我们也是基于一些预定义的值划分数据。 请问有没有人能帮我理解哈希和索引之间的区别,并如何决定使用哪种方法。

8得票2回答
生产者通过消息队列一致地哈希到消费者吗?

我有一个生产者,希望通过一致性哈希算法将工作均匀分配给消费者。例如,对于消费者节点X和Y,任务A、B、C应该始终分配给消费者X,而任务D、E、F则分配给消费者Y。但如果Z加入消费者池,则可能会有所变化。 我不想编写自己的逻辑来连接消费者节点,尤其是不想管理加入和离开池的节点,因此我选择使用R...