memcached羣集

https://pan.baidu.com/s/1vdoBffFBfUCtrN3DXFPM6w //軟件鏈接百度網盤

配置memcached主緩存節點和從緩存節點-----兩臺配置相同

1.關閉防火牆機及Selinux[重要]

systemctl stop firewalld
setenforce 0
2.安裝環境包
yum install lrz* -y
yum -y install gcc gcc-c++ make

memcached羣集
memcached羣集

3.編譯安裝libevent(必須先安裝)

#解壓
tar xf libevent-2.1.8-stable.tar.gz -C /opt
tar xf memcached-1.5.6.tar.gz -C /opt/

memcached羣集

#切換到libevent目錄
cd /opt/libevent-2.1.8-stable/

#配置
./configure --prefix=/usr/local/libevent

#編譯及安裝
make && make install
3.編譯安裝memcached

#切換到memcached
cd /opt/memcached-1.5.6/

#配置(指定libevent路徑)
./configure \
--prefix=/usr/local/memcached \
--with-libevent=/usr/local/libevent/

#編譯及安裝
make && make install
4.優化啓動(支持複製功能的Mencached需要安裝後的libevent-2.1.so.6模塊,不然啓動服務會報錯)

ln -s /usr/local/libevent/lib/libevent-2.1.so.6.0.2  /usr/lib64/libevent-2.1.so.6 
5.分別在兩臺服務器上啓動memcached

#主服務器
./memcached -m 512k -u root -d -l 192.168.80.100 -p 11211

#從服務器
./memcached -m 512k -u root -d -l 192.168.80.101 -p 11211
6.檢查memcached是否啓動

netstat -ntap | grep 11211

memcached羣集

magent在主服務器安裝,從服務器不用安裝
編譯安裝magent
1.創建magent目錄

mkdir /opt/magent

memcached羣集

2.解壓

tar xf magent-0.5.tar.gz -C /opt/magent

memcached羣集

3.切換到目錄

cd /opt/magent
4.讓動態鏈接庫爲系統所共享

/sbin/ldconfig
5.編輯ketama.h,添加文件頭部信息

    vi ketama.h

    #ifndef SSIZE_MAX
    #define SSIZE_MAX 32767

memcached羣集

6.修改Makefile

vi Makefile     //libevent安裝路徑在/usr/local/libevent中使用以下內容:
LIBS = -levent -lm  -L /usr/local/libevent/lib
INCLUDE=-I /usr/local/libevent/include

memcached羣集

Magent + Keepalived實現Memcached高可用羣集
7.編譯(完成後會生成一個manage的可執行文件)

make

memcached羣集

8.複製mgent命令到系統管理中,便於使用

cp /opt/magent/magent /usr/bin/
9.發送至從服務器

scp /opt/magent/magent [email protected]:/usr/bin

memcached羣集

安裝keepalived

yum -y install keepalived

memcached羣集

1.編輯keepalived配置文件

    vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
      router_id magent_H1              #指定router_id
}

vrrp_script magent {                #定義函數
    script "/root/shell/magent.sh"
    interval 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens32             #本地網卡名稱
    virtual_router_id 51        #id主從一致
    priority 100                #主優先級大於從優先級
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

track_script {              #調用函數
        magent
    }

virtual_ipaddress {         #vip地址
        192.168.80.188
    }

}
2.建立shell目錄

mkdir /root/shell

memcached羣集

3.創建magent.sh腳本

    vi /root/shell/magent.sh

#!/bin/bash

Keepalived=`ps -ef | grep keepalived | grep -v grep | wc -l`
if [ $Keepalived -gt 0 ]; then
        magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.100:11211 -b 192.168.80.101:11211
else
        pkill -9 magent
fi

memcached羣集
參數說明:

    -n 51200                #定義用戶最大連接數
    -l 192.168.175.188                #指定虛擬IP
    -p 12000                   #指定端口號
    -s                              #指定主緩存服務器
    -b                              #指定從緩存服務器
4.賦予腳本執行權限

chmod +x /root/shell/magent.sh
5.啓動keepalived服務

systemctl enable keepalived
systemctl start keepalived
6.檢查keepalived服務狀態

systemctl status keepalived

memcached羣集

7.檢查vip地址

ip addr show ens32

memcached羣集

在從服務器上操作
1.安裝keepalived

yum -y install keepalived

memcached羣集

2.將主服務器上keepalived配置文件複製過來

scp [email protected]:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 

memcached羣集

3.編輯keepalived配置文件

    vi keepalived.conf

! Configuration File for keepalived

global_defs {
      router_id magent_H2              #指定router_id
}

vrrp_script magent {                #定義函數
    script "/root/shell/magent.sh"
    interval 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens32             #本地網卡名稱
    virtual_router_id 51        #id主從一致
    priority 90             #主優先級大於從優先級
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {         #vip地址
        192.168.80.188
    }
    track_script {              #調用函數
        magent
    }
}
4.新建shell目錄

mkdir /root/shell

memcached羣集

5.創建magent.sh腳本

    vi /root/shell/magent.sh

#!/bin/bash
Keepalived=`ip addr | grep 192.168.80.188 | grep -v grep | wc -l`
if [ $Keepalived -gt 0 ]; then
        magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.100:11211 -b 192.168.80.101:11211
else
        pkill -9 magent
fi
6.賦予腳本執行權限

chmod +x /root/shell/magent.sh

memcached羣集

7.啓動keepalived服務

systemctl enable keepalived
systemctl start keepalived
8.檢查keepalived服務狀態

systemctl status keepalived

memcached羣集

9.檢查vip地址

ip addr show ens32

memcached羣集

在客戶端測試
1.安裝telnet客戶端

yum -y install telnet

memcached羣集

2.連接memcached
測試複製功能

//連接vip進行測試,插入user鍵值
[root@centos7-1 ~]# telnet 192.168.80.188 12000
Trying 192.168.80.188...
Connected to 192.168.80.188.
Escape character is '^]'.
set user 0 0 5
test1
STORED
get user
VALUE user 0 5
test1
END
quit
Connection closed by foreign host.
//連接Memcached1,查詢user鍵值,可以獲取,成功!
[root@centos7-1 ~]# telnet 192.168.80.100 11211
Trying 192.168.80.100...
Connected to 192.168.80.100.
Escape character is '^]'.

get user
VALUE user 0 5
test1
END
quit
Connection closed by foreign host.
//連接Memcached2,查詢user鍵值,也可以獲取,成功!
[root@centos7-1 ~]# telnet 192.168.80.101 11211
Trying 192.168.80.101...
Connected to 192.168.80.101.
Escape character is '^]'.

get user
VALUE user 0 5
test1
END
quit
Connection closed by foreign host.

測試單點故障
停止主服務器,去連接漂移地址,查看有木有出現內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章