应用场景
这里我先描述一个极其简单的业务场景:用4台Cache服务器缓存所有Object。
那么我将如何把一个Object映射至对应的Cache服务器呢?最简单的方法设置缓存规则:object.hashCode() % 4。
Cache 0: object.hashCode() % 4 == 0 |
Cache 1: object.hashCode() % 4 == 1 |
Cache 2: object.hashCode() % 4 == 2 |
Cache 3: object.hashCode() % 4 == 2 |
看起来一切正常,考虑下面两种情况:
一:由于Cache3硬件损坏,所有Cache3上的缓存都失效了,需要把Cache3移除。
二:由于负载已经无法承担业务增涨,决定添加一台Cache