Mycat 官网 http://www.mycat.org.cn/
Keepalived官方帮助文档 https://www.keepalived.org/manpage.html
https://www.keepalived.org/doc/
我在192.168.163.130 和 192.168.163.129 上分别安装了Mycat,安装过程十分简单下载压缩包,解压修改配置文件即可。
Mycat 下载地址:https://github.com/MyCATApache/Mycat-download 具体下载哪个版本以发布为准,推荐1.4,1.5.
安装了Mysql、Mycat、HaProxy、Keepalived分布如图所示
安装haproxy
-
首先在 130 这台机器上安装 HaProxy,使用yum的方式
yum search haproxy
2.安装haproxy
yum install -y haproxy.x86_64
- 配置文件所在的目录是
etc/haproxy/haproxy.cfg
- 修改配置文件
defaults
mode tcp
log global
option tcplog
option dontlognull
#option http-server-close
#option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:5000
#acl url_static path_beg -i /static /images /javascript /stylesheets
#acl url_static path_end -i .jpg .gif .png .css .js
#use_backend static if url_static
default_backend app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
balance roundrobin
server static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
balance roundrobin
server app1 192.168.163.130:8066 check
server app2 192.168.163.129:8066 check
#server app3 127.0.0.1:5003 check
#server app4 127.0.0.1:5004 check
- Mycat 使用的是tcp的协议,所以
mode tcp
- 由于只有两台Mycat,所以只使用两个server,其中负载的均衡的方式为
balance roundrobin
轮询的方式。 - 其余注释的是和http协议有关,所以注释掉,否则会报警告。
3.启动HaProxy
haproxy -f /etc/haproxy/haproxy.cfg
- -f 指定配置文件的位置
4.机器129上重复以上安装haproxy的操作并且启动
5.至此整个架构中mycat不是单点了,mycal也不是单点,需要使用keepalived做HA的切换。
安装Keepalived
-
首先在130机器上安装keepalived
yum search keepalived
2.安装操作
yum install -y keepalived.x86_64
- 配置文件目录为
/etc/keepalived/keepalived.conf
3.修改配置文件
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.163.199
}
track_script {
chk_haproxy
}
}
virtual_server 192.168.163.199 6000 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.163.130 5000 {
weight 1
}
}
- 首先注释掉
vrrp_strict
- 配置虚拟IP为
192.168.163.199
,必须和本地IP在同一个网段内 interface ens33
interface 表示本机的网卡,需要和本机对应virtual_server
对应配置的虚拟IPvirtual_server
下的real_server
对应的是真实的服务器地址和端口号,这里我们监听HA的端口
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_1 {
track_script {
chk_haproxy
}
}
配和使用 主要用途:
每隔2s监控一下 killall -0 haproxy 执行的结果
通过结果来判断 haproxy 是否挂掉,然后自动的切换真实的IP地址
4.启动keepalived
keepalived -f /etc/keepalived/keepalived.conf
- -f 指定配置文件的位置
5.测试keepalived 和 haproxy 挂掉,不是引起我们的引用整个挂掉。