环境搭建---基于docker的rabbitmq

基于docker容器的rabbitmq镜像集群部署流程

本集群采用Haproxy负载均衡方案

一 、拉取镜像,创建容器并启动

在98服务器上面使用rabbitmq:3.7-management镜像安装rabbitmq,
创建三个rabbitmq容器并运行。

1.1 执行容器rabbitmq01命令

docker run -d --hostname rabbitmq01 --name gd_mq_rabbitmq_1 -p 15673:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.7-management

1.2 执行容器rabbitmq02命令

docker run -d --hostname rabbitmq02 --name gd_mq_rabbitmq_2 -p 15674:15672 -p 5674:5672 --link gd_mq_rabbitmq_1:rabbitmq01 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.7-management

1.3 执行容器rabbitmq03命令

docker run -d --hostname rabbitmq03 --name gd_mq_rabbitmq_3 -p 15675:15672 -p 5675:5672 --link gd_mq_rabbitmq_1:rabbitmq01 --link gd_mq_rabbitmq_2:rabbitmq02 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.7-management

二、 查看容器启动状态

启动容器后,访问
http://192.168.163.98:15673
http://192.168.163.98:15674
http://192.168.163.98:15675 查看单个容器是否启动成功。
账号/密码:guest / guest。

三、 配置rabbitMQ集群

3.1 进入第一个rabbitmq节点容器:

docker exec -it gd_mq_rabbitmq_1 bash

进入容器后,操作rabbitmq,执行如下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

3.2 进入第二个rabbitmq节点容器

docker exec -it gd_mq_rabbitmq_2 bash

执行如下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit

3.3 进入第三个rabbitmq节点容器

docker exec -it gd_mq_rabbitmq_3 bash

执行如下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit

四、 实现镜像模式集群

4.1 设置镜像队列策略

进入容器

docker exec -it rabbitmqCluster01 bash

执行如下命令(该命令可以在任意一个节点执行):

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

说明:
在cluster中任意节点启用策略,策略会自动同步到集群节点

rabbitmqctl set_policy ha-all "^" ‘{“ha-mode”:“all”}’

策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示匹配所有队列名称。

4.2 创建haproxy镜像和容器

4.1.1 HaProxy简介:

HaProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HaProxy特别适用于负载特大的web站点,这些站点通常又需要会话保持或七层处理。HaProxy运行在时下的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以简单安全整合进您当前框架中,同时可以保护你的web服务器不被暴露到网络上

4.1.2 拉取haproxy镜像

docker pull haproxy

4.1.3 创建haproxy.cfg文件

创建/home/haproxy/haproxy.cfg文件
内容如下:

#logging options
global
	log 127.0.0.1 local0 info
	maxconn 5120
	chroot /usr/local/etc/haproxy
	uid 99
	gid 99
	daemon
	quiet
	nbproc 20
	pidfile /var/run/haproxy.pid

defaults
	log global
	#使用4层代理模式,”mode http”为7层代理模式
	mode tcp
	#if you set mode to tcp,then you nust change tcplog into httplog
	option tcplog
	option dontlognull
	retries 3
	option redispatch
	maxconn 2000
	timeout connect 5s
    #客户端空闲超时时间为 60秒 则HA 发起重连机制
    timeout client 60s
    #服务器端链接超时时间为 15秒 则HA 发起重连机制
    timeout server 15s
#front-end IP for consumers and producters

#集群监听端口
listen rabbitmq_cluster
	bind 0.0.0.0:5677
	#配置TCP模式
	mode tcp
	#balance url_param userid
	#balance url_param session_id check_post 64
	#balance hdr(User-Agent)
	#balance hdr(host)
	#balance hdr(Host) use_domain_only
	#balance rdp-cookie
	#balance leastconn
	#balance source //ip
	#简单的轮询
	balance roundrobin
	#rabbitmq集群节点配置 
	#inter 每隔五秒对mq集群做健康检查, 2次正确证明服务器可用,2次失败证明服务器不可用,并且配置主备机制
    server gd_mq_rabbitmq_1 192.168.163.98:5673 check inter 5000 rise 2 fall 2
    server gd_mq_rabbitmq_2 192.168.163.98:5674 check inter 5000 rise 2 fall 2
    server gd_mq_rabbitmq_3 192.168.163.98:5675 check inter 5000 rise 2 fall 2
#配置haproxy web监控,查看统计信息
listen stats
	bind 0.0.0.0:8100
	mode http
	option httplog
	stats enable
	#设置haproxy监控地址为http://192.168.163.98:8100/rabbitmq-stats
	stats uri /rabbitmq-stats
	stats refresh 5s
	stats auth admin:123456
listen rabbitmq_admin #监听8000端口转发到rabbitmq的客户端
    bind 0.0.0.0:8000
    server gd_mq_rabbitmq_1 192.168.163.98:15673 check inter 5000 rise 2 fall 2
    server gd_mq_rabbitmq_2 192.168.163.98:15674 check inter 5000 rise 2 fall 2
    server gd_mq_rabbitmq_3 192.168.163.98:15675 check inter 5000 rise 2 fall 2	
4.1.4 创建并启动容器:

执行如下命令:

docker run --name rabbitmq-haproxy -p 5677:5677 -p 8100:8100 -p 8000:8000  -v /home/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
4.1.5 监控集群

Haproxy监控地址:http://192.168.163.98:8100/rabbitmq-stats
用户名:admin
密码:123456

Rabbitmq集群连接地址:192.168.163.98 端口:5677

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值