您好,登錄后才能下訂單哦!
內容要點
一、magent介紹:
二、架構部署:
一、magent介紹:
magent是一款開源的代理服務軟件,我們可以通過它來實現緩存數據的同步,當然這里說的同步不是說memcached之間就能互相通訊了, 而magent可以同時連接多個memcached節點, 通過magent綁定的VIP從客戶端登錄memcached寫入數據,其他節點的memcached數據也會同步。
二、架構部署:
環境說明:
角色 | 需要安裝的軟件包 |
memcached主(IP地址:192.168.220.137) | magent 、memcached 、libevent 、keeplived |
memcached從(IP地址:192.168.220.135) | memcached 、 libevent 、keeplived |
客戶端(IP地址:192.168.220.131) | telnet 測試工具 |
虛擬ip | (192.168.220.100) |
第一步:配置 memcache 主緩存節點和從緩存節點(兩臺服務器配置相同)
1、安裝依賴包:
yum?install?gcc?gcc-c++?make?-y
2、解壓軟件包:
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/
3、編譯和安裝:
1、 cd?/opt/libevent-2.1.8-stable ./configure?--prefix=/usr/ make?&&?make?install 2、 cd?/opt/memcached-1.5.6 ./configure?\ --with-libevent=/usr make?&&?make?install
4、創建軟連接:
ln?-s?/usr/lib/libevent-2.1.so.6?/usr/lib64/libevent-2.1.so.6
第二步:部署主服務器 ----- 安裝 magent代理,從服務器不需要
1、cd?/opt/magent vim?ketama.h 在開頭處增減以下代碼: #ifndef?SSIZE_MAX #define?SSIZE_MAX?32767 #endif
vim?Makefile LIBS?=?-levent?-lm???//加上?-lm
2、修改完成后 make 編譯
3、此時,make完成后,就會產生 magent可執行程序
4、將這個 magent 程序復制到path環境變量中
cp?magent?/usr/bin/
5、可以將安裝好的 magent 復制到從服務器,這樣從服務器就不需要再配置了
yum?install?openssh-clients?-y???//安裝工具包 scp?magent?root@192.168.220.135:/usr/bin/
第三步:在主從服務器上都安裝 keepalived,并部署
(1)主服務器:
yum?install?keepalived?-y????//安裝keepalived
修改配置文件:
vim?/etc/keepalived/keepalived.conf //定義一個函數,建議寫在最前面 vrrp_script?magent?{ ????????script?"/opt/shell/magent.sh" ????????interval?2 ??????} ?????? 做如下修改: router_id?MAGENT_HA????????//修改id名 interface?ens33????????????//修改網卡信息 virtual_ipaddress?{ ????????192.168.220.100?????//定義好虛擬ip地址 ????}??? ???? vrrp_instance?VI_1?{ ..... //調用函數.以下三行代碼寫在vrrp模塊內 track_script?{ ????????magent ??????} .....
(2)從服務器:
vim?/etc/keepalived/keepalived.conf 做如下修改: router_id?MAGENT_HB?????????//id名和第一臺要不一樣 state?BACKUP???????????????//從服務器 virtual_router_id?52???????//id號和第一臺不一樣 priority?90?????????????????//優先級低與主服務器
第四步:配置主、從服務器腳本
(1)創建一個腳本:
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?????????????//定義用戶最大連接數 -l?192.168.220.100???//指定虛擬IP -p?12000?????????????//指定端口號 -s???????????????????//指定主緩存服務器 -b???????????????????//指定從緩存服務器
(3)給腳本添加一個執行權限:
chmod?+x?magent.sh
systemctl?stop?firewalld.service???//必須關閉否則magent不啟動 setenforce?0
(4)開啟 keepalived 服務
systemctl?start?keepalived.service netstat?-anpt?|?grep?12000?//確認magent運行,端口正常運行
(5)驗證主從 :
1、主服務器 ----- 查看 /var/log/messages 文件,找到關鍵詞:Transition to MASTER STATE
2、從服務器 ----- 找到關鍵詞:Entering BACKUP STATE
(6) ip addr 命令 ----- 確定漂移地址生效:
第五步:啟動主 、從服務器
(1)啟動主服務器:
memcached?-m?512k?-u?root?-d?-l?192.168.220.137?-p?11211
(2)啟動從服務器:
memcached?-m?512k?-u?root?-d?-l?192.168.220.135?-p?11211
(3)查看端口是否正常開啟:
netstat?-anptu?|?grep?11211
第六步:客戶機測試
1、先安裝 Telnet 工具:
yum?install?telnet?-y
2、測試:
使用漂移地址登錄連接:
telnet?192.168.220.100?12000
在客戶機上操作,寫入一個數據,同時觀察主、從服務器上是否會同步生成:
(1)主服務器:
(2)從服務器:
3、雙機熱備:
(1)停掉主服務器:
systemctl?stop?keepalived.service
(2)客戶機依舊可以連接:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。