您好,登錄后才能下訂單哦!
magent是一款開源的代理服務軟件,我們可以通過它來實現緩存數據的同步,當然這里說的同步不是說memcached之間就能互相通訊了, 而magent可以同時連接多個memcached節點, 通過magent綁定的VIP從客戶端登錄memcached寫入數據,其他節點的memcached數據也會同步。
環境說明:
1、配置 memcache 主緩存節點和從緩存節點(兩臺服務器配置相同)
yum install gcc gcc-c++ make -y
1、tar zxvf memcached-1.5.6.tar.gz -C /opt/
2、tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/
3、mkdir /opt/magent
tar zxvf magent-0.5.tar.gz -C /opt/magent/
2、編譯安裝
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/
make && make install
cd /opt/memcached-1.5.6
./configure \
--with-libevent=/usr
make && make install
3、創建軟連接
ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6
4、部署主服務器 ----- 安裝 magent代理,從服務器不需要
cd /opt/magent
vim ketama.h
在開頭處增減以下代碼:
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
vim Makefile
LIBS = -levent -lm //加上 -lm
5、修改完成后 make 編譯
6、此時,make完成后,就會產生 magent可執行程序
7、將這個 magent 程序復制到path環境變量中
cp magent /usr/bin/
8、可以將安裝好的 magent 復制到從服務器,這樣從服務器就不需要再配置了
yum install openssh-clients -y //安裝工具包
scp magent root@192.168.220.135:/usr/bin/
9、在主從服務器上都安裝 keepalived,并部署
(1)主服務器
yum install keepalived -y //安裝keepalived
修改配置文件:
vim /etc/keepalived/keepalived.conf
//定義一個函數,建議寫在最前面
vrrp_script magent {
script "/opt/shell/magent.sh"
interval 2
}
做如下修改:
router_id MAGENT_HA //修改id名
interface ens33 //修改網卡信息
virtual_ipaddress {
192.168.220.100 //定義好虛擬ip地址
}
vrrp_instance VI_1 {
.....
//調用函數.以下三行代碼寫在vrrp模塊內
track_script {
magent
}
.....
}
(2)從服務器
vim /etc/keepalived/keepalived.conf
做如下修改:
router_id MAGENT_HB //id名和第一臺要不一樣
state BACKUP //從服務器
virtual_router_id 52 //id號和第一臺不一樣
priority 90 //優先級低與主服務器
10、配置主、從服務器腳本
(1)創建一個腳本
mkdir /opt/shell
(2)編寫
vim magent.sh
#!/bin/bash
K=`ps -ef | grep keepalived | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.220.100 -p 12000 -s 192.168.220.137:11211 -b 192.168.220.135:11211
else
pkill -9 magent
fi
//
-n 51200 //定義用戶最大連接數
-l 192.168.220.100 //指定虛擬IP
-p 12000 //指定端口號
-s //指定主緩存服務器
-b //指定從緩存服務器
(3)給腳本添加一個執行權限
chmod +x magent.sh
systemctl stop firewalld.service //必須關閉否則magent不啟動
setenforce 0
(4)開啟 keepalived 服務
systemctl start keepalived.service
netstat -anpt | grep 12000 //確認magent運行,端口正常運行
(5)驗證主從 :
1、主服務器 ----- 查看 /var/log/messages 文件,找到關鍵詞:Transition to MASTER STATE
2、從服務器 ----- 找到關鍵詞:Entering BACKUP STATE
(6) ip addr 命令 ----- 確定漂移地址生效
第五步:啟動主 、從服務器
(1)啟動主服務器:
memcached -m 512k -u root -d -l 192.168.220.137 -p 11211
(2)啟動從服務器:
memcached -m 512k -u root -d -l 192.168.220.135 -p 11211
netstat -anptu | grep 11211
第六步:客戶機測試
先安裝 Telnet 工具:
yum install telnet -y
測試:
1、使用漂移地址登錄連接:
2、我們在客戶機上操作,寫入一個數據,同時觀察主、從服務器上是否會同步生成:
(1)主服務器:
(2)從服務器:
3、雙機熱備:
(1)停掉主服務器:
systemctl stop keepalived.service
(2)客戶機依舊可以連接:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。