Memcached羣集
實驗環境
主機名 | 系統 | IP | 主要軟件包 |
---|---|---|---|
Memcached1 | CentOS 7 | 192.168.27.160 | Magent、libevent、memcached、keepalived |
Memcached2 | CentOS 7 | 192.168.27.163 | libevent、memcached、keepalived |
client | CentOS 7 | 192.168.27.164 | telent |
實驗過程
1、配置memcached主緩存節點和從緩存節點
- 兩臺緩存節點配置相同;
yum install gcc gcc-c++ make #安裝環境包
tar xf memcached-1.5.6.tar.gz -C /opt/
tar xf libevent-2.1.8-stable.tar.gz -C /opt/
cd /opt/libevent-2.1.8-stable #安裝lib插件
./configure --prefix=/usr/
make && make install #編譯安裝
cd ../memcached-1.5.6 #安裝memcached
./configure --with-libevent=/usr
make && make install #編譯安裝
mkdir /opt/magent
tar xf magent-0.5.tar.gz -C /opt/magent
cd /opt/magent/
vi ketama.h
#ifndef SSIZE_MAX #在內容開頭添加
#define SSIZE_MAX 32767
#endif
vi Makefile
LIBS = -levent -lm
make #編譯
cp magent /usr/bin/ #把生成的mgent程序讓系統識別
scp magent [email protected]:/usr/bin/ #把產生的magent命令執行文件直接複製到從服務器,從服務器無需再次進行配置了。
2、配置keepalived
- 兩臺服務器都需配置,配置不同之處將會標出;
yum install keepalived -y
vi /etc/keepalived/keepalived.conf
router_id test01 #兩臺服務器不同,從爲test02
vrrp_script magent {
script "/opt/shell/magent.sh" #腳本目錄,需要創建
interval 2 #檢測腳本時間間隔
}
vrrp_instance VI_1 {
state MASTER #從服務器爲BACKUP
interface ens33
virtual_router_id 51 #兩臺服務器不同,從服務器爲52
priority 100 #從服務器小,從服務器爲90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script { #調用腳本
magent
}
virtual_ipaddress { #虛擬IP
192.168.27.111
}
}
3、設置magent管理腳本
- 兩臺服務器的magent管理腳本不同
- 1)、主服務器上設置magent管理腳本;
cd /opt
cd /opt
mkdir shell
cd shell
vi 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.27.111 -p 12000 -s 192.168.27.160:11211 -b 192.168.27.163:11211
else
pkill -9 magent
fi
#-n 51200 //定義用戶最大連接數
#-l 192.168.175.188 //指定虛擬IP
#-p 12000 //指定端口號
#-s //指定主緩存服務器
#-b //指定從緩存服務器
chmod +x magent.sh #賦予執行權限
systemctl start keepalived.service #開啓服務
- 2)、從服務器上設置magent管理腳本;
cd /opt
mkdir shell
cd shell
vi magent.sh
#!/bin/bash
K=`ip addr | grep 192.168.27.111 | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.27.11 -p 12000 -s 192.168.27.160:11211 -b 192.168.27.163:11211
else
pkill -9 magent
fi
chmod +x magent.sh #賦予執行權限
systemctl start keepalived.service #開啓服務
4、啓動memcached服務
memcached -m 512k -u root -d -l 192.168.27.160 -p 11211 #啓動主
memcached -m 512k -u root -d -l 192.168.27.163 -p 11211 #啓動從
5、驗證
- 1)、在客戶機上登錄並插入內容,在兩臺主從服務器上都可查看到內容;
- 2)、將主服務器關掉,在客服機上插入新的內容,從服務器上仍能查看到內容;