溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Centos7 下實現 memcached + keepalived 高可用群集

發布時間:2020-07-13 02:59:48 來源:網絡 閱讀:673 作者:Cher1shDan 欄目:數據庫

memcached + keepalived 高可用群集

memcached介紹

Memcached是一套開源的高性能分布式內存對象緩存系統,它將所有的數據都存
儲在內存中,因為在內存中會統一維護一張巨大的Hash表,所以支持任意存儲類型的
數據。很多網站通過使用 Memcached提高網站的訪問速度,尤其是對于大型的需要頻
繁訪問數據的網站。
Memcached是典型的C/S架構,因此需要安裝 Memcached服務端與 Memcached
API客戶端。 Memcached服務端是用C語言編寫的,而 Memcached API客戶端可以用
任何語言來編寫,如PHP、 Python、Perl等,并通過 Memcached協議與 Memcached服
務端進行通信。

memcached主從復制+keepalived高可用框架介紹

Memcached服務器修改數據都會被同步到
另外一臺,但是 Memcached API客戶端是無法判斷連接到哪一臺 Memcached服務
器的,所以需要設置VP地址,提供給 Memcached Apl客戶端進行連接??梢允褂?br/>keepalived產生的VP地址連接主 Memcached服務器,并且提供高可用架構。

因為 Memcached主從復制這種架構,在程序連接主服務
器,在前端加VP地址,實現高可用架構。這里用 Keepalived實現,因而
Keepalived的作用是用來檢測 Memcached服務器的狀態是否正常。
Keepalived不斷檢測 Memcached主服務器的11211端口,如果檢測到 Memcached
服務發生宕機或者死機等情況,就會將VP從主服務器移至從服務器,從而實現
Memcached的高可用性。

實驗準備

一臺主服務器
需要安裝 magent memcached libevent keepalived
一臺從服務器
需要安裝 memcached libevent keepalived

實驗步驟

在主服務器和從服務器上安裝memcached 和 libevent

tar xzvf memcached-1.5.6.tar.gz
tar xzvf libevent-2.1.8-stable.tar.gz

cd libevent-2.1.8
./configure --prefix=/usr    ##指定安裝路徑

make && make install   

cd memcached-1.5.6
./configure --with-libevent=/usr

make && make install

ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6    ##主服務器上magent服務需要這個模塊

在主服務器上安裝magent

mkdir /magent
tar xzvf magent-0.5.tar.gz

cd /magent
vim ketama.h
修改
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767

vim Makefile
LIBS = -levent -lm

make

cp magent /usr/bin   ##方便系統識別命令

在主服務器上把magent 復制到從服務器上

yum install openssh-clients
scp magent root@192.168.x.x:/usr/bin

在主服務器上安裝keepalived

vim /etc/keepalived/keepalived.conf
router—_id MAGENT_HA
刪除
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0

定義新函數
vrrp_script magent{
script"/opt/shell/magent.sh"
 interval 2       ##時間間隔
}

修改vrrp_instance下面
INTERFACE ens33
添加
track_script {
    magent
}        ## 使用新函數

定義一個虛擬IP
virtual_ipaddress {
    192.168.x.x
    }

下面多余的部分可以全部刪除

在從服務器上安裝keepalived

yum install keepalived 

從主服務器上把配置腳本復制到從服務器上
scp /etc/keepalived/keepalived.conf root@192.168.x.x.:/etc/keepalived/keepalived.conf

vim /etc/keepalived
router_id MAGENT_HB
state BACKUP     ##從服務器
virtual_router_id 52    ##ID不同
priortity 90     ##優先級

在主服務器上配置 magent腳本

mkdir /opt/shell
 vim /opt/shell/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.x.x -p 12000 -s 192.168.x.x:11211 -b 192.168.x.x:11211
else
pkill -9 magent
fi

-n 51200 //定義用戶最大連接數
-l 192.168.x.x //指定虛擬IP
-p 12000  //指定端口號
-s //指定主緩存服務器
-b //指定從緩存服務器

chmod +x magent.sh

在從服務器上配置 magent腳本

mkdir /opt/shell
 vim /opt/shell/magent.sh
 #!/bin/bash
 K=`ip addr | grep 192.168.x.x(虛擬IP) | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
        magent -u root -n 51200 -l 192.168.x.x -p 12000 -s 192.168.x.x:11211 -b 192.168.x.x:11211
else
pkill -9 magent
fi  

chmod +x magent.sh

主從服務器開啟keepalived服務

systemctl start keepalived.service

netstat -ntap |grep 12000

如果有12000端口表示服務開啟成功

登錄memcached服務器

memcached -m 512k -u root -d -l 192.168.xx 主 -p  11211
memcached -m 512k -u root -d -l 192.168.x.x 從 -p  11211

netstat -ntap |grep 11211

有11211端口表示服務開啟成功

測試

在第三臺服務器上安裝 telnet
yum install telnet -y

telnet 192.168.x.x(虛擬IP) 12000
add username 0 0 7
1234567
Stored 
quit
## 通過虛擬IP登錄 并創建一個用戶

telnet 192.168.x.x(主/從服務器) 11211
get username
VALUE username 0 7
1234567
END
quit
##  在主從服務器上都能得到這個數據

在主服務器上關掉 memcached
pkill -9 memcached

192.168.x.x(虛擬IP) 12000
add username 0 0 7
1234567
Stored 
quit
## 通過虛擬IP 寫入數據

telnet 192.168.x.x(從服務器) 11211
get username
VALUE username 0 7
1234567
END
quit
## 從服務器依然能讀取到

至此 memcached+keepalived 高可用群集完成

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女