十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
?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ì)同步。
在鼎城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營(yíng)銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,鼎城網(wǎng)站建設(shè)費(fèi)用合理。
memcached主 192.168.13.128 (magent 、memcached 、libevent 、keeplived)
memcached從 192.168.13.129 (memcached 、 libevent 、keeplived)
client客戶端 192.168.13.130 (telnet 測(cè)試工具)
虛擬ip 192.168.13.100
[root@master ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for root@//192.168.100.3/LNMP-C7:
[root@master ~]# cd /mnt/memcached/
[root@master memcached]# tar zxvf memcached-1.5.6.tar.gz -C /opt/
[root@master memcached]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/ ##事件庫(kù)
[root@master memcached]# mkdir /opt/magent
[root@master memcached]# tar zxvf magent-0.5.tar.gz -C /opt/magent/
[root@master memcached]# yum install gcc gcc-c++ make -y
[root@master memcached]# cd /opt/libevent-2.1.8-stable/
[root@master libevent-2.1.8-stable]# ./configure --prefix=/usr/
[root@master libevent-2.1.8-stable]# cd ../memcached-1.5.6/
[root@master memcached-1.5.6]# ./configure \
> --with-libevent=/usr
[root@master magent]# systemctl stop firewalld.service
[root@master magent]# setenforce 0
[root@master memcached-1.5.6]# cd /opt/magent/
[root@master magent]# vim ketama.h ##修改magent配置文件
##首行修改添加
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif //此項(xiàng)如果有就不需要添加
[root@master magent]# vim Makefile ##編輯Makefile配置文件
##查找此項(xiàng)后面添加-lm
LIBS = -levent -lm
[root@master magent]# make ##編譯后產(chǎn)生一個(gè)magent可執(zhí)行程序
[root@master magent]# yum install openssh-clients -y
[root@master magent]# cp magent /usr/bin/ ##放到/usr/bin中
[root@master magent]# scp magent root@192.168.13.129:/usr/bin/
##拷貝到從服務(wù)器/usr/bin中
[root@master magent]# yum install keepalived -y ##安裝keepalived服務(wù)
[root@master magent]# vim /etc/keepalived/keepalived.conf ##修改配置文件
//定義一個(gè)函數(shù),建議寫在最前面(主服務(wù)器配置)
vrrp_script magent {
script "/opt/shell/magent.sh"
interval 2
}
做如下修改:
router_id MAGENT_HA //修改id名
interface ens33 //修改網(wǎng)卡信息
virtual_ipaddress {
192.168.13.100 //定義好虛擬ip地址
}
vrrp_instance VI_1 {
.....
//調(diào)用函數(shù).以下三行代碼寫在vrrp模塊內(nèi)
track_script {
magent
}
##從服務(wù)器上配置如下(可通過scp直接拷貝主服務(wù)器配置文件到從服務(wù)器)
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ù)器
[root@master keepalived]# mkdir /opt/shell
[root@master keepalived]# cd /opt/shell/
[root@master shell]# vim magent.sh ##編輯magent腳本
#!/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.13.100 -p 12000 -s 192.168.13.128:11211 -b 192.168.13.129:11211
else
pkill -9 magent
fi
//
-n 51200 //定義用戶最大連接數(shù)
-l 192.168.13.100 //指定虛擬IP
-p 12000 //指定端口號(hào)
-s //指定主緩存服務(wù)器
-b //指定從緩存服務(wù)器
[root@master shell]# chmod +x magent.sh ##執(zhí)行權(quán)限
[root@master shell]# systemctl start keepalived.service ##開啟服務(wù)
[root@master shell]# netstat -natp | grep 12000 ##查看端口
##驗(yàn)證主從
主服務(wù)器 ----- 查看 /var/log/messages 文件,找到關(guān)鍵詞:Transition to MASTER STATE
從服務(wù)器 ----- 找到關(guān)鍵詞:Entering BACKUP STATE
ip addr 命令 ----- 確定漂移地址生效
主服務(wù)器:
[root@master shell]# memcached -m 512k -u root -d -l 192.168.13.128 -p 11211
[root@master shell]# netstat -natp | grep 11211
從服務(wù)器:
[root@slave shell]# memcached -m 512k -u root -d -l 192.168.13.129 -p 11211
[root@slave shell]# netstat -ntap | grep 11211
[root@client ~]# yum install telnet -y ##安裝登錄工具
[root@client ~]# telnet 192.168.13.100 12000 ##用虛擬ip登錄
Trying 192.168.13.100...
Connected to 192.168.13.100.
Escape character is '^]'.
add username 0 0 7 ##添加一個(gè)數(shù)據(jù)
1234567
STORED
##在主服務(wù)器上查看是否有寫入的數(shù)據(jù)
[root@master shell]# telnet 192.168.13.128 11211
Trying 192.168.13.128...
Connected to 192.168.13.128.
Escape character is '^]'.
get username
VALUE username 0 7
1234567
END
##在從服務(wù)器上查看是否有寫入的數(shù)據(jù)
[root@slave shell]# telnet 192.168.13.129 11211
Trying 192.168.13.129...
Connected to 192.168.13.129.
Escape character is '^]'.
get username
VALUE username 0 7
1234567
END
[root@master shell]# systemctl stop keepalived.service
[root@client ~]# telnet 192.168.13.100 12000 ##客戶端仍然可以登錄
Trying 192.168.13.100...
Connected to 192.168.13.100.
Escape character is '^]'.