Mycat--实践--20--haporxy实现Mycat的负载均衡和高可用

Mycat–实践–20–haporxy实现Mycat的负载均衡和高可用

1、架构

在这里插入图片描述

2、机器

名称IpPort
MyCat1192.168.187.1298066
MyCat2192.168.187.1318066
HAProxy 主机192.168.187.1337071

2.1、安装MyCat

参考地址


https://blog.csdn.net/zhou920786312/article/details/122425291

3、开启 rsyslog 的 haproxy 日志记录功能(HAProxy 主机上)

默认情况下 haproxy 是不记录日志的,如果需要记录日志,还需要配置系统的 syslog,在 linux 系统中是 rsyslog 服务。

syslog 服务器可以用作一个网络中的日志监控中心,rsyslog 是一个开源工具,被
广泛用于 Linux 系统以通过 TCP/UDP 协议转发或接收日志消息。

3.1、安装配置 rsyslog 服务

步骤1:没安装的情况下执行安装

yum install rsyslog  -y

步骤2:修改配置

vi /etc/rsyslog.conf

rsyslog.conf内容,没有就新增

# 模块名, 支持 UDP 协议
$ModLoad imudp 

# 允许 514 端口接收使用 UDP 和 TCP 协议转发过来的日志,而 rsyslog 在默认情况下,正是在 514 端口监听 UDP
$UDPServerRun 514

# rsyslog 服务的配置文件路径
$IncludeConfig /etc/rsyslog.d/*.conf

在这里插入图片描述

步骤3:创建 haproxy 的日志配置文件


# rsyslog 服务会来此目录加载配置
cd /etc/rsyslog.d/ 

# 创建 haproxy 的日志配置文件
touch haproxy.conf

vim /etc/rsyslog.d/haproxy.conf

haproxy.conf
local0.* /var/log/haproxy.log
&~

如果不加上面的的"&~"配置则除了在/var/log/haproxy.log 中写入日志外,也会写入/var/log/message文件中

步骤4: 重启 rsyslog 服务

service rsyslog restart

4、配置系统内核的 IP 包转发功能(HAProxy 主机上)

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1 

使配置生效
sysctl -p

5、安装HAProxy

名称IpPort
HAProxy 主机192.168.187.1337071

5.1、搭建7071的HAProxy

步骤1:创建配置文件

# 创建配置文件目录
mkdir -p /root/haproxy

# 创建配置文件 
vim /root/haproxy/haproxy.cfg



haproxy.cfg
 

global

	# 定义全局的 syslog 服务器,最多可以定义 2 个
	# local0 是日志设备,对应于/etc/rsyslog.conf 中的配置,默认回收 info 的日志级别
	log 127.0.0.1 local0 info  
	
	# 同 gid,不过这里为指定的用户组名 
	group haproxy
	# 同 uid,但这里使用的为用户名
	user haproxy 
	# 设置 haproxy 后台守护进程形式运行
	daemon 
 

	# 设定每个 haproxy 进程所接受的最大并发连接数,
	maxconn 4096
	 
	# 进程文件(默认路径 /var/run/haproxy.pid)
	# pidfile /var/run/haproxy.pid 
	
	# 定义当前节点的名称,用于 HA 场景中多 haproxy 进程共享同一个 IP 地址时,不同的机器这里要不同
	node  haproxy-01 
	# 当前实例的描述信息,不同的机器这里要不同
	description haproxy-01 
	
	
# 用于为所有其他配置段提供默认参数 
defaults
	# 继承 global 中 log 的定义
	log global 
	# mode:所处理的模式 (tcp:四层 , http:七层 , health:状态检查,只会返回 OK) ,前后端请求的模式
		# tcp: 实例运行于纯 tcp 模式,在客户端和服务器端之间将建立一个全双工的连接,且不会对 7 层报文做任何类型的检查,此为默认模式
		# http:实例运行于 http 模式,客户端请求在转发至后端服务器之前将被深度分析,所有不与 RFC 模式兼容的请求都会被拒绝
		# health:实例运行于 health 模式,其对入站请求仅响应“OK”信息并关闭连接,且不会记录任何日志信息 ,此模式将用于相应外部组件的监控状态检测请求
	mode http 
	# 启用日志记录 HTTP 请求
	option httplog
	# 3次健康检查都死亡,认为服务端死亡
	retries 3
	# serverId 对应的服务器挂掉后,强制定向到其他健康的服务器
	option redispatch 
	
	# 前端的最大并发连接数(默认为 2000)
	maxconn 2000 
 
	# 连接超时(默认是毫秒,单位可以设置 us,ms,s,m,h,d)
	timeout connect 5000ms 
	
	# 客户端超时
	timeout client 50000ms 

	# 服务器超时
	timeout server 50000ms 



# HAProxy 的状态信息统计页面
listen admin_stats 
	bind 0.0.0.0:48800 # 绑定端口
	stats uri /admin #统计页面
	stats auth admin:admin # 设置统计页面认证的用户和密码,如果要设置多个,另起一行写入即可
	mode http
	option httplog # 启用日志记录 HTTP 请求
	
# listen: 用于定义通过关联"前端"和"后端"一个完整的代理 
listen mycat_servers
	bind :3306 # 绑定端口  
	mode tcp
	# 记录 TCP 请求日志
	option tcplog 
	 
	balance roundrobin # 定义动态权重轮询算法 
	server mycat_01 192.168.187.129:8066 check  inter 2000ms rise 2 fall 3 weight 10
	server mycat_02 192.168.187.131:8066 check  inter 2000ms rise 2 fall 3 weight 10

 

步骤2:启动

docker run -d -p 7071:48800 -p 3306:3306 --name haproxy  -v /root/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:2.5.0 

 

步骤3:测试

http://192.168.187.133:7071/admin
 

在这里插入图片描述

6、验证:通过HAProxy 连接 MyCat

在这里插入图片描述

在这里插入图片描述

6.1、停止1台mycat

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值