由於工作中要開發一個分佈式限速服務,方案中會用到分佈式緩存或者分佈式in-memory的key-value存儲,這是一個比較大的方向,所以單獨在這裏開一個專題(專業給自己挖坑,慢慢填吧。。)
分佈式緩存主要考慮幾個問題
- 數據均衡性
- 分區容忍行
- 擴縮容
數據均衡性
取決於分區算法
分區算法需要滿足:
- 平橫性:主要是數據的平均分佈,及當集羣中某一個緩存服務失效,數據也能夠正常分佈
- 單調性:當數據插入某個緩存之後,再次調用,同樣會落到對應的緩存上面。
常見的算法有:
- Consistent Hash ()
- HRW (https://en.wikipedia.org/wiki/Rendezvous_hashing)
In-Memory Data Grid
reference: