memcached cluster 多租戶方案

jopen 9年前發布 | 13K 次閱讀 緩存服務器 memcached

由于memcached 不支持多租戶,不支持多個用戶使用同一個緩存,并且memcached之間也沒有任何交互操作,所以自定義開發memcached 的多租戶的集群成了必要的選擇,由于目前網絡上沒有太好的支持多租戶的memcahced集群方案,所以我自己開發了一套memcahced集群,支持用 戶名和密碼

架構說明:

McProxy: 所有外部請求的入口,用戶訪問memcached集群的入口, McProxy中維護一個路由表map,路由表結構如下: one namespace -> a memcached cluster , McProxy 通過namespace(用戶名)來區分不同的集群

Config Servers: Config servers分為Master, Slave, Heatbeat三種角色的機器, Heatbeat屬于Slave機器中的一種,Slave機器之間會互相檢測健康狀態. Heatbeat機器定時檢測Master機器的狀態, 如果Heatbeat機器down其他的slave機器采用搶占模式,自封Heatbeat角色,并開始重新檢測Master機器.

Master機器會維護所有的memcached集群和McProxy的路由表, Master會定時的檢測所有memcached集群的狀態, 如果有memcached集群的server down,Master機器會通知所有McProxy去更新路由表. 如果Master機器down, Heatbeat機器會指定其他有效的Slave機器,自封Master角色,并開始承擔Master機器的工作

Memcached Cluster: Memcached cluster機器之間是不會互相通信, 但是也會有一個Master多個Slave的角色, 當有寫的請求, McProxy 先將數據寫入memcached Master機器, 然后并發的備份數據到其他的memcached Slave機器, 當有讀的請求, 采用hash一致性算法,隨機選擇一個cache讀取數據

架構簡易圖如下:

memcached cluster 多租戶方案

</div> 來自:http://my.oschina.net/u/917732/blog/495419

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!