歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> kvproxy的數據主從復制簡介

kvproxy的數據主從復制簡介

日期:2017/2/27 15:54:46   编辑:Linux教程
簡介
kvproxy的一個很重要的特性是能實現主從集群間的數據同步。有點類似於mysql和redis的主從數據同步。之所以實現這個功能,是因為在使用memcached的時候,有些時候需要兩個集群間保持數據一致。而memcached又沒有提供類似的功能。如果想了解更多的kvproxy的一些特性。

應用場景
一般需要搭建主從兩個數據庫集群的時候,可能會需要數據的同步。什麼時候需要搭建兩個集群呢?大概有這麼幾種情況。

場景一:
解決單點問題。如,用戶登錄的session使用一台memcached存儲。如果這台memcached機器故障,可能會導致全部用戶登錄狀態丟失。這種情況下,可以再啟動一個memcached,用於備份。

場景二:
解決網絡延遲問題。如,你的應用部署在兩個機房。而兩個機房的網絡延遲比較大。如果只在一個機房部署memcached集群,可能會導致響應時間明顯加大,很大的影響了用戶體驗。這時,就需要在兩個機房各部署一個memcached集群。處理請求時,只使用本機房的memcached。

主從數據復制策略
kvproxy支持兩種類型的數據復制策略。即,同步復制和異步復制。

同步復制
同步復制就是,當有數據寫操作(set delete add 等)時,先寫主集群,然後寫從集群,兩個集群都寫完後,最後給客戶端響應。
優點:能保證數據的及時同步到從集群。
缺點:客戶端等待時間過長。

異步復制
異步復制就是,當數據寫操作(set add 等)時,先謝主集群,然後給客戶端響應,最後寫從集群。
優點:能快速響應客戶端。
確定:數據同步有延遲。

如何使用
首先,在配置文件中建立兩個集群。組名可以隨意定。主集群叫master,從集群叫slave。

其次,在配置文件中修改hosts和hosts_backup兩個配置項。hosts配置項用於設置主集群名。hosts_backup配置項用於設置從集群名。

最後,設置同步復制key前綴。如,我們設置sync_str = ‘+’,那麼只要key是以+開頭的,都使用同步復制。否則,使用異步復制。

配置文件示例如下:
[memcached]
; 擴展文件名。
extension=memcached.so
; 設置默認後端集群。
hosts=master
; 設置備份集群。所有的寫操作命令都會同步到此集群一份。如果未設置,將不進行數據的同步或者異步復制。
;hosts_backup=slave
; 同步數據復制前綴符號。默認的數據復制為異步復制。如果想數據復制為同步復制,可以把key的前綴設置為指定字符串
sync_str = “+”
; 使用的協議類型 binary 二級制協議 text 文本協議
proto = binary
;;;;;;;;;;;;;;;;
; 集群設置 ;
;;;;;;;;;;;;;;;;
; 集群名
[master]
; ip : 端口號 = “在集群中的標示數字id : 權重”
; 同一組中每個後端服務器的標示數字id不能重復
127.0.0.1:11211=”1:50″
127.0.0.1:11212=”2:50″
[slave]
127.0.0.1:11212=”1:50″
127.0.0.1:11213=”2:100″
127.0.0.1:11214=”3:50″ 
Copyright © Linux教程網 All Rights Reserved