您好,登錄后才能下訂單哦!
為解決memcached單點故障,需要實現memcached緩存的高可用。
首先,需要實現Memcached的主主復制,指任意一臺memcached服務器修改數據都會被同步到另外一臺,但是memcached API無法判斷連接哪一臺服務器,因此需要VIP。
其次,通過Keepalived產生的VIP連接memcached服務器,提供高可用架構。
主機 | IP地址 | 操作系統 | 主要軟件 |
---|---|---|---|
Memcached 1 | 192.168.37.128 | Centos7 | libevent;memcached;keepalived;magent |
Memcached 1 | 192.168.37.130 | Centos7 | libevent;memcached;keepalived |
鏈接:https://pan.baidu.com/s/1tHnxoldZoX7U0aHnx6GlRg 密碼:vl6l
1、安裝環境包
yum install gcc gcc-c++ make -y
systemctl stop firewalld.service
setenforce 0
2、解壓libevent、memecached包
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt
tar zxvf memcached-1.5.6.tar.gz -C /opt
3、手工編譯安裝(注意:libevent在先,memcached在后)
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
1、解壓magent
mkdir /opt/magent
tar zxvf magent-0.5.tar.gz -C /opt/magent/ #代理,從服務器不需裝
2、編輯配置文件
cd /opt/magent
vim ketama.h #文件開頭修改
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif #刪除最后那個endif
vim Makefile
LIBS = -levent -lm #注意空格
make #安裝magent
ls #查看magent可執行程序
3、將magent程序復制到memcached從服務器
yum install openssh-clients -y #安裝推送插件
cp magent /usr/bin/ #將編譯好的magent程序復制到從服務器
scp magent root@192.168.37.130:/usr/bin
yum install keepalived -y
vim /etc/keepalived/keepalived.conf
//12行
router_id MAGENT_HA
刪除13-16
//1行下添加
vrrp_script magent {
script "/opt/shell/magent.sh"
interval 2 #時間間隔2s
}
vrrp_instance VI_1 {
......
interface ens33 #修改
......
track_script { #調用-添加 ;注意括號
magent
}
virtual_ipaddress #修改
192.168.37.188
} #定義漂移地址
} #剩余全刪除
yum install keepalived -y
cd /etc/keepalived/
mv keepalived.conf keepalived.conf.bk #修改配置文件名
scp keepalived.conf root@192.168.37.130:/etc/keepalived/ #主服務器上推送
vi keepalived.conf
router_id MAGENT_HB
state BACKUP
virtual_router_id 52
priority 90
1、創建目錄
mkdir /opt/shell
2、編寫腳本
cd /opt/shell
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.37.188 -p 12000 -s 192.168.37.128:11211 -b 192.168.37.130:11211
else
pkill -9 magent
fi
-n 51200 //定義用戶最大連接數
-l 192.168.37.188 //指定虛擬IP
-p 12000 //指定端口號
-s //指定主緩存服務器
-b //指定從緩存服務器
chmod +x magent.sh #添加執行權限
3、主從服務器開啟keepalived服務
systemctl start keepalived.service
netstat -ntap | grep 12000 #開啟較慢,確認magent運行
4、確認主從服務器漂移地址生效
//主服務器:
//從服務器 :
//主服務器:
memcached -m 512k -u root -d -l 192.168.37.128 -p 11211
netstat -ntap | grep 11211
yum install telnet -y
telnet 192.168.37.128 11211
//從服務器:
memcached -m 512k -u root -d -l 192.168.37.130 -p 11211
netstat -ntap | grep 11211
yum install telnet -y
telnet 192.168.37.130 11211
1、連接VIP,寫入數據
yum install telnet -y
telnet 192.168.37.188 12000
add username 0 0 4
1234
2、主從服務器可以看到寫入的內容
3、斷掉一臺memcached,再次訪問,客戶端仍然可以連接
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。