一致性Hash的介绍

发布于:2016-11-27 22:37 作者:losetowin 浏览:1408 分类:Java

场景


单个节点的缓存容量达到上限,无法继续单点增加内存,如何解决?

单个节点支撑的QPS达到上限,如何解决? 

初步方案

增加N个缓存节点,为了保证缓存数据的均匀,一般情况会采用对key值hash,然后取模的方式,然后根据结果,确认数据落到哪台节点上:如下:

hash(key)%N 

很好,这个的确解决了上面的问题,实现了初...

阅读全文>>

标签: 一致性哈希

0

锁的公平和非公平

发布于:2016-11-20 20:39 作者:losetowin 浏览:2195 分类:Java
简单介绍

在锁的获取上,存在一个公平性和不公平性的问题,所谓的公平是指,在一段时间内,先对锁发起获取请求的一定被先满足。或者可以理解成期望获取锁的线程是一个先进先出的队列,等待时间最久的线程最优先获取到锁。而非公平是指,获取锁的顺序并不是有序的,可以随时插队。就好比都在排队检票,突然来了一个人说他的火车马上就要开车了,想插在你前面检票进站,这时候你就有可能仁慈了,把位置让他插入了。 这时...

阅读全文>>

【设计模式】模板方法模式

发布于:2016-11-2 22:56 作者:losetowin 浏览:1135 分类:Java
定义

定义一个操作中算法的框架,将一些步骤延迟到子类。使得子类可以不改变一个算法的结构,即可重定义该算法的某些步骤。
或者可以描述成:
定义一个算法的骨架,将一些实现步骤延迟到子类。不变的行为放到超类中,去除掉子类中的重复代码。

UML图

QQ20161102-0.png

使用场景

多个子类有公共的方法,并且逻辑基本相同时。
重...

阅读全文>>