溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Memcached + Magent + keepalived高可用集群

發(fā)布時(shí)間:2020-06-20 21:54:26 來源:網(wǎng)絡(luò) 閱讀:393 作者:wx5d3faba330584 欄目:云計(jì)算

一、前言

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ì)同步。

二、架構(gòu)部署

環(huán)境說明:
Memcached + Magent + keepalived高可用集群
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

Memcached + Magent + keepalived高可用集群

vim Makefile
LIBS = -levent -lm   //加上 -lm

Memcached + Magent + keepalived高可用集群
5、修改完成后 make 編譯
6、此時(shí),make完成后,就會(huì)產(chǎn)生 magent可執(zhí)行程序
Memcached + Magent + keepalived高可用集群
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)行

Memcached + Magent + keepalived高可用集群
(5)驗(yàn)證主從 :
1、主服務(wù)器 ----- 查看 /var/log/messages 文件,找到關(guān)鍵詞:Transition to MASTER STATE
Memcached + Magent + keepalived高可用集群
2、從服務(wù)器 ----- 找到關(guān)鍵詞:Entering BACKUP STATE
Memcached + Magent + keepalived高可用集群
(6) ip addr 命令 ----- 確定漂移地址生效
Memcached + Magent + keepalived高可用集群
第五步:啟動(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

Memcached + Magent + keepalived高可用集群
第六步:客戶機(jī)測試
先安裝 Telnet 工具:

yum install telnet -y

測試:
1、使用漂移地址登錄連接:

Memcached + Magent + keepalived高可用集群
2、我們?cè)诳蛻魴C(jī)上操作,寫入一個(gè)數(shù)據(jù),同時(shí)觀察主、從服務(wù)器上是否會(huì)同步生成:
Memcached + Magent + keepalived高可用集群
(1)主服務(wù)器:
Memcached + Magent + keepalived高可用集群
(2)從服務(wù)器:
Memcached + Magent + keepalived高可用集群
3、雙機(jī)熱備:
(1)停掉主服務(wù)器:

systemctl stop keepalived.service

(2)客戶機(jī)依舊可以連接:
Memcached + Magent + keepalived高可用集群

向AI問一下細(xì)節(jié)

免責(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)容。

AI