Memcache 分布式高可用集群介绍
生活随笔
收集整理的這篇文章主要介紹了
Memcache 分布式高可用集群介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分布式緩存需考慮如下三點: 1、緩存本身的水平線性擴展的問題。 2、緩存大病罰下的本身性能問題。 3、避免緩存的單點鼓掌問題。 分布式緩存存在的問題: 1、內存本身的管理問題。內存的分配,管理和回收機制。 2、分布式管理和分布式算法。 3、緩存鍵值管理和路由。
常見分布式算法
Memcached在實現分布集群部署時,Memcached服務端的之間是沒有通訊的,服務端是偽分布式,實現分布式是由客戶端實現的,客戶端實現了分布式算法把數據保存到不同的Memcached 服務端。?1.取模
currServer = serverList[ hash(key) % sizeof(serverList) ] 余數計算的方法簡單,數據的分散性也相當優秀,但也有其缺點。那就是當添加或移除服務器時,緩存重組的代價相當巨大。添加服務器后,余數就會產生巨變,這樣就無法獲取與保存時相同的服務器,從而影響緩存的命中。2.一致性hash
原理,首先求出memcached 服務器(節點)的哈希值,并將其配置到0~232的圓(continuum)上。然后用同樣的方法求出存儲數據的鍵的哈希值,并映射到圓上。然后從數據映射到的位置開始順時針查找,將數據保存到找到的第一個服務器上。如果超過232 仍然找不到服務器,就會保存到第一臺memcached 。?二、多副本、故障轉移
memcached對容錯不做處理的,也就是說當Memcached 服務端掛掉或者 Memcached 重啟復活,由于Memcached重啟后無數據,對高并發的大型系統中,是沒辦法接受的,我們在集群的情況下,要做到負載均衡和容錯 ,這種情況下, 服務器端掛掉,負載就不那么均衡,緩存數據也會丟失 ,重新對數據庫進行操作,加大的系統的性能, 數據丟失容錯也沒做得那么好。 Memcache自身并沒有實現集群功能,如果想用Memcahce實現集群需要借助第三方軟件或者自己設計編程實現,如repcached、memagent、 memcached-ha等。總結
以上是生活随笔為你收集整理的Memcache 分布式高可用集群介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 架构解密:从分布式到微服务
- 下一篇: 圣杯(说一说圣杯的简介)