目录
前言
前面我们采用了mycat集群的数据库解决方案https://blog.csdn.net/Delicious_Life/article/details/106176132
为了解决客户端对接多个mycat中间件的问题,我们继续进行架构优化,由代理haproxy完成负载均衡,客户端直接对接的是haproxy
haproxy环境搭建
首先我们用docker宕下来haproxy的镜像
docker pull haproxy:1.9.3
创建目录用来放haproxy相关文件
mkdir /haoke/haproxy
新建haproxy的配置文件
vim /haoke/haproxy/haproxy.cfg
写入如下内容
前面的都是配置信息,也记录了haproxy管理页面的访问路径,最后配置的是haproxy代理的两个mycat的端口号:8066&8067
global
log 127.0.0.1 local2
maxconn 4000
daemon
defaults
mode http
log global
option httplog
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
listen admin_stats
bind 0.0.0.0:4001
mode http
stats uri /dbs
stats realm Global\ statistics
stats auth admin:admin123
listen proxy-mysql
bind 0.0.0.0:4002
mode tcp
balance roundrobin
option tcplog
#代理mycat服务
server mycat_1 192.168.62.132:8066 check port 8066 maxconn 2000
server mycat_2 192.168.62.132:8067 check port 8067 maxconn 2000
创建容器
docker create --name haproxy --net host -v /haoke/haproxy:/usr/local/etc/haproxy haproxy:1.9.3
启动容器
docker restart haproxy && docker logs -f haproxy
访问HAProxy管理页面(虚拟机IP+4001+dbs)
http://192.168.62.132:4001/dbs
让输入用户名密码
可以看到,mycat1和mycat2的背景都是绿色,这代表2个mycat当前运行正常无误。
使用navicat新建一个haproxy,端口4002.注意用户名和密码是mycat的用户名和密码,itcast/itcast123
打开里面的itcast/tb_ad表
是不是很舒服?不论有2个还是3个mycat我们直接操纵haproxy即可~~~
haproxy——mycat——mysql集群