0


Mycat高可用方案-HAProxy+Keepalived

文章目录

前言

🔥

Mycat

系列专栏:https://blog.csdn.net/qq_41779565/category_11876566.html
🔥

Mycat

主从搭建、读写分离:https://micromaple.blog.csdn.net/article/details/125375231
🔥

Mycat

实现分库分表:https://micromaple.blog.csdn.net/article/details/125375312
🔥

Mycat

实现单库水平分表、按月分表:https://micromaple.blog.csdn.net/article/details/125395498

概述

在实际项目中,

Mycat

服务也需要考虑高可用性,如果

Mycat

所在服务器出现宕机,或

Mycat

服务故障,需要有备机提供服务,需要考虑

Mycat

集群。

高可用方案

使用

HAProxy

+

Keepalived

配合两台

Mycat

搭起

Mycat

集群,实现高可用性。

HAProxy

实现了

Mycat

多节点的集群高可用和负载均衡,而

HAProxy

自身的高可用则可以通过

Keepalived

来实现。

在这里插入图片描述
编号角色

IP

地址1

Mycat1

192.168.110.1452

Mycat2

192.168.110.1503

HAProxy(master)

192.168.110.1514

Keepalived(master)

192.168.110.1515

HAProxy(backup)

192.168.110.1526

Keepalived(backup)

192.168.110.152

安装配置 HAProxy

各版本下载地址:

https://src.fedoraproject.org/repo/pkgs/haproxy/

本文使用版本为:

1.5.18

下载地址:

https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.5.18.tar.gz/21d35f114583ef731bc96af05b46c75a/haproxy-1.5.18.tar.gz

安装步骤:

  • 将下载好的HAProxy安装包传到/usr/local/src目录下进行解压cd /usr/local/srcwget https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.5.18.tar.gz/21d35f114583ef731bc96af05b46c75a/haproxy-1.5.18.tar.gztar -zxvf haproxy-1.5.18.tar.gzcd /usr/local/src/haproxy-1.5.18
  • 安装依赖插件# Ubuntu 依次执行sudoapt-getinstall -y gccsudoapt-getinstall -y g++sudoapt-getinstall -y libssl-devsudoapt-getinstall -y daemonsudoapt-getinstall -y make# CentOSyum install -y gcc openssl-devel popt-devel
  • 查看内核版本,进行编译# 查看内核版本uname -r# 查看 haproxy README文件对应的系统内核版本cat /usr/local/haproxy/README``````makeTARGET=linux2628 PREFIX=/usr/local/haproxy ARCH=x86_64- ARGET:内核版本,使用uname -r查看内核,结合查看haproxy README文件对应的系统内核版本- ARCH:系统位数- PREFIX:为haprpxy安装路径
  • 编译完成,进行安装makeinstallPREFIX=/usr/local/haproxy
  • 安装完成- 创建配置目录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 #quietdefaults log global mode tcp option abortonclose option redispatch retries 3 maxconn 2000 timeout connect 5000 timeout client 50000 timeout server 50000# HAProxy 监听配置listen proxy_status # 监听代理端口 bind :48066 mode tcp balance roundrobin # 监听Mycat服务地址 server mycat_1 192.168.110.145:8066 check inter 10s server mycat_2 192.168.110.150:8066 check inter 10s# HAProxy 控制台配置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
  • 启动验证- 启动HAProxy``````/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf- 查看HAProxy进程ps -ef|grep haproxy- 打开浏览器访问http://192.168.110.151:7777/admin输入配置文件中的账号密码进行访问。admin/123456在这里插入图片描述- 验证负载均衡,通过HAProxy访问Mycat``````mysql -umycat -p123456 -h 192.168.110.151 -P 48066
HAProxy(backup) 192.168.110.152

如上配置

配置 Keepalived

各版本下载地址:

https://www.keepalived.org/download.html

本文使用版本为:

1.4.2

下载地址:

https://www.keepalived.org/software/keepalived-1.4.2.tar.gz

安装步骤:

  • 将下载好的Keepalived安装包传到/usr/local/src目录下进行解压cd /usr/local/srcwget https://www.keepalived.org/software/keepalived-1.4.2.tar.gztar -zxvf keepalived-1.4.2.tar.gzcd /usr/local/src/keepalived-1.4.2
  • 安装依赖插件# Ubuntu 依次执行sudoapt-getinstall -y gccsudoapt-getinstall -y g++sudoapt-getinstall -y libssl-devsudoapt-getinstall -y daemonsudoapt-getinstall -y make# CentOSyum install -y gcc openssl-devel popt-devel
  • 进入解压后的目录,进行配置cd /usr/local/src/keepalived-1.4.2./configure --prefix=/usr/local/keepalived
  • 进行编译,完成后进行安装cd /usr/local/src/keepalived-1.4.2make&&makeinstall
  • 运行前配置,将keepalived设置为系统服务- Ubuntu配置mkdir /etc/keepalivedmkdir /etc/sysconfigcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/ln -s /usr/local/keepalived/sbin/keepalived /sbin/- CentOS配置mkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/default/keepalivedcp /usr/local/keepalived/sbin/keepalived /usr/sbin/
  • 修改配置文件vim /etc/keepalived/keepalived.conf配置文件内容如下:! Configuration File for keepalivedglobal_defs { notification_email { [email protected] } notification_email_from [email protected] 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 ens33 virtual_router_id 51 #数值越大优先级越高 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { #虚拟IP,在HAProxy之上设定一个虚拟IP,可以在该网段内任意指定未使用的IP 192.168.110.200 }}virtual_server 192.168.110.200 48066 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP # HAProxy 地址 real_server 192.168.110.151 48066 { weight 1 TCP_CHECK { connect_timeout 3 retry 3 delay_before_retry 3 } } real_server 192.168.110.152 48066 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }}
  • 配置重载systemctl daemon-reload
  • 启动验证- 启动Keepalived``````service keepalived start- 启动后可以看到在ens33真实IP:192.168.110.151下面挂载了一个虚拟IP:192.168.110.200``````root@ubuntu:~# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:9b:eb:14 brd ff:ff:ff:ff:ff:ff inet 192.168.110.151/24 brd 192.168.110.255 scope global ens33 valid_lft forever preferred_lft forever inet 192.168.110.200/32 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe9b:eb14/64 scope link valid_lft forever preferred_lft forever3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:c3:d3:e0:c7 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever- 查看Keepalived状态service keepalived status- 登录验证mysql -umycat -p123456 -h 192.168.110.200 -P 48066
  • 测试高可用- 关闭Mycat1在这里插入图片描述- 通过虚拟IP查询数据# 通过Keepalived登录数据库mysql -umycat -p123456 -h 192.168.110.200 -P 48066# 切换数据库use TESTDB;# 执行SQL命令show tables;``````root@ubuntu-mysql-master:~# mysql -umycat -p123456 -h 192.168.110.200 -P 48066mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.6.29-mycat-1.6.7.6-release-20220524173810 MyCat Server (OpenCloudDB)Copyright (c)2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.mysql> use TESTDB;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+------------------+| Tables_in_orders |+------------------+| customer || dict_order_type || login_info || orders || orders_detail || orders_ware_info || payment_info |+------------------+7 rows inset(0.00 sec)

本文转载自: https://blog.csdn.net/qq_41779565/article/details/125493216
版权归原作者 micromaple 所有, 如有侵权,请联系我们删除。

“Mycat高可用方案-HAProxy+Keepalived”的评论:

还没有评论