天天看點

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是以+開頭的,都使用同步複制。否則,使用異步複制。

配置檔案示例如下: