![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hash
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
RocketMQ Consumer 负载均衡算法源码学习 -- AllocateMessageQueueConsistentHash
RocketMQ 提供了一致性hash 算法来做Consumer 和 MessageQueue的负载均衡。 源码中一致性hash 环的实现是很优秀的,我们一步一步分析。一个Hash环包含多个节点, 我们用 MyNode 去封装节点, 方法 getKey() 封装获取节点的key。我们可以实现MyNode 去描述一个物理节点或虚拟节点。MyVirtualNode 实现 MyNode, 表示一个虚...转载 2019-12-17 16:39:49 · 292 阅读 · 0 评论 -
常见的一些 Hash 函数
Hash的主要原理就是把大范围映射到小范围;所以,你输入的实际值的个数必须和小范围相当或者比它更小。不然冲突就会很多。不同的应用对Hash函数有着不同的要求;比如,用于加密的Hash函数主要考虑它和单项函数的差距,而用于查找的Hash函数主要考虑它映射到小范围的冲突率。下面介绍一些常用的用于查询Hash函数。加法Hashpublic class AdditiveHash { ...转载 2019-12-17 16:06:27 · 563 阅读 · 0 评论 -
Java一致性Hash算法的实现
哈希hashhash的意思是散列,目的是将一组输入的数据均匀的分开、打散,往往用来配合路由算法做负载均衡,多用在分布式系统中。比如memcached,它只提供了K V的存储、读取,如果使用了多台memcache做一个“逻辑集群”,就需要客户端做“路由算法”,来保证数据均匀的进去,然后能“原路”拿出来。常规哈希取模常规哈希,往往结合取模运算,以便将请求转发到后端的服务器上,如下图:...转载 2019-12-17 15:57:00 · 193 阅读 · 0 评论 -
一致 Hash 算法
当我们在做数据库分库分表或者是分布式缓存时,不可避免的都会遇到一个问题:如何将数据均匀的分散到各个节点中,并且尽量的在加减节点时能使受影响的数据最少。Hash 取模随机放置就不说了,会带来很多问题。通常最容易想到的方案就是 hash 取模了。可以将传入的 Key 按照 index = hash(key) % N 这样来计算出需要存放的节点。其中 hash 函数是一个将字符串转换为正...转载 2018-09-06 14:07:13 · 281 阅读 · 0 评论 -
哈希碰撞与生日攻击
一、哈希碰撞是什么?所谓哈希(hash),就是将不同的输入映射成独一无二的、固定长度的值(又称"哈希值")。它是最常见的软件运算之一。如果不同的输入得到了同一个哈希值,就发生了"哈希碰撞"(collision)。举例来说,很多网络服务会使用哈希函数,产生一个 token,标识用户的身份和权限。AFGG2piXh0ht6dmXUxqv4nA1PU120r0yMAQhuc13...转载 2018-10-30 08:13:37 · 3031 阅读 · 0 评论 -
MemCache详细解读
MemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。...转载 2018-11-10 13:30:34 · 340 阅读 · 0 评论 -
对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置在这个H...转载 2018-11-10 13:47:11 · 244 阅读 · 0 评论 -
科普:String hashCode 方法为什么选择数字31作为乘子
1. 背景某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。在看完资料后,默默的感叹了一句,原来是这样啊。那么到底是哪样呢?在接下来章...转载 2018-11-13 11:21:45 · 307 阅读 · 0 评论 -
不同时重写equals和hashCode又会怎样?
作者:flyhero微信公众号:码上实战(ID:Push-Code)可能一问到equals和hashCode相关的问题,就会有人讲他们的自反性,对称性,一致性,传递性等几条约定了,此时我不得不佩服,这么多约定竟然都能记得,但我不知道你是不是真的理解呢。一、我不同时重写又能如何呢?我只能说只要你不碰到这几个主,你也没什么事的!1、为什么不能遇到它们几个呢?因为它们...转载 2019-06-11 20:36:03 · 565 阅读 · 0 评论