MyCat高可用集群
第一章 MyCat的安裝,實作資料讀寫分離
第二章 搭建MySQL雙主雙從服務器
第三章 資料庫垂直拆分——分庫
第四章 資料庫水平拆分——分表
第五章 基于HAProxy的MyCat高可用集群
第六章 Mycat監控——Mycat-web
文章目錄
- MyCat高可用集群
- 前言
- 一、環境準備
- 二、安裝HAProxy
- 1、下載安裝包
- 2、安裝HAProxy
- 3、驗證HAProxy
- 三、安裝Keepalived
- 1、安裝keepalived
- 2、驗證keepalived
- 四、測驗高可用
- 1、關閉Mycat
- 2、關閉HAProxy
前言
前面搭建了雙主雙從服務的讀寫分離,實作了MySQL的高可用,但MyCat本身存在單點故障的可能,
因此我們可以使用HAProxy+Keepalived配合兩臺Mycat搭起Mycat集群,實作高可用性,HAProxy 實作了MyCat 多節點的集群高可用和負載均衡,而HAProxy 自身的高可用則可以通過Keepalived 來實作,

一、環境準備
六臺CentOS7虛擬機
兩臺HAProxy:H1(主)、H2(備)
兩臺MyCat:MC1、MC2
兩臺mysql資料庫:MS1、MS2
| 名稱 | 主機名 | IP |
|---|---|---|
| MyCat1 | centos7_1 | 192.168.80.70 |
| MyCat2 | centos7_6 | 192.168.80.60 |
| HAProxy1 | centos7_4 | 192.168.80.40 |
| HAProxy2 | centos7_5 | 192.168.80.50 |
| MySql1 | centos7_2 | 192.168.80.20 |
| MSql2 | centos7_3 | 192.168.80.30 |
二、安裝HAProxy
1、下載安裝包
HAProxy下載地址:http://download.openpkg.org/components/cache/haproxy/

Keepalived下載地址:https://www.keepalived.org/download.html

2、安裝HAProxy
#將下載好的HAProxy安裝包傳到服務器
#安裝依賴
yum install -y gcc openssl-devel popt-devel
#解壓
tar -zxvf haproxy-2.1.2.tar.gz
#進入解壓后的目錄
cd haproxy-2.1.2
#查看內核版本
uname -r

#編譯
make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64
#ARGET=linux310,內核版本,使用uname -r查看內核,如:3.10.0-514.el7,此時該引數就為linux310;
#ARCH=x86_64,系統位數;#PREFIX=/usr/local/haprpxy
#/usr/local/haprpxy,為haprpxy安裝路徑,
#安裝
make install PREFIX=/usr/local/haproxy
可以echo $? 命令查看上一條命令執行情況,0表示正常執行
#安裝完成后,創建目錄
mkdir -p /usr/data/haproxy/
#創建HAProxy組態檔,向組態檔中插入以下配置資訊
vim /usr/local/haproxy/haproxy.conf
global
log 127.0.0.1 local0
#log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /usr/local/haproxy
pidfile /usr/data/haproxy/haproxy.pid
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode tcp
option abortonclose
option redispatch
retries 3
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
listen proxy_status
bind :48066
mode tcp
balance roundrobin
server mycat_1 192.168.80.70:8066 check inter 10s
server mycat_2 192.168.80.60:8066 check inter 10s
frontend admin_stats
bind :7777
mode http
stats enable
option httplog
maxconn 10
stats refresh 30s
stats uri /admin
stats auth admin:123456
stats hide-version
stats admin if TRUE

3、驗證HAProxy
#啟動HAProxy
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf
#查看HAProxy行程
ps -ef|grep haproxy

#通過48066埠登錄mycat
mysql -umycat -p123456 -P48066 -h 192.168.80.40

#打開瀏覽器訪問,賬號:admin,密碼:123456
http://192.168.80.40:7777/admin

#這里可以看到我的兩臺mycat都是在線的(紅色即為不在線)
#同樣的步驟在H2也做一遍
三、安裝Keepalived
1、安裝keepalived
#將下載好的Keepalived安裝包傳到服務器
#解壓
tar -zxvf keepalived-2.1.2.tar.gz
#進入解壓后的目錄
cd keepalived-2.1.2
#編譯安裝
./configure --prefix=/usr/local/keepalived
make && make install
#復制組態檔
cp ./keepalived/etc/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp ./keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#修改組態檔
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
xlcocoon@foxmail.com
}
notification_email_from keepalived@showjoy.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
#主機配MASTER,備機配BACKUP
state MASTER
#所在機器網卡
interface ens32
virtual_router_id 51
#數值越大優先級越高
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#虛擬IP
192.168.80.200
}
}
virtual_server 192.168.80.200 48066 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server192.168.80.70 48066 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 192.168.80.60 48600 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
注意修改網卡名稱和mycat服務器地址
#同樣的步驟在H2也做一遍,注意修改BACKUP和優先級

2、驗證keepalived
#啟動Keepalived
systemctl start keepalived
#登錄驗證
mysql -umycat -p123456 -h 192.168.80.200 -P 48066
#查看orders表資訊
use TESTDB;
select * from orders;

四、測驗高可用
1、關閉Mycat
#關閉mycat1,查看運行狀態
./mycat stop
./mycat status

#查詢orders表,資料庫仍正常運行

2、關閉HAProxy
#關閉H1的網路連接,模擬服務器宕機

#重新連接資料庫
mysql -umycat -p123456 -h 192.168.80.200 -P 48066
#通過虛擬IP資料庫仍可正常訪問

#通過IP訪問H1
mysql -umycat -p123456 -h 192.168.80.40 -P 48066

至此利用HAProxy實作MyCat高可用集群,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/238532.html
標籤:其他
上一篇:作業3年,看啥資料能月薪30K?
下一篇:作業幫面經(已拿offer)

