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