docker部署rabbitmq集群

1 镜像

docker pull rabbitmq:3.7.28-management

2 docker

sudo docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672  \
-p 61613:61613  \
--privileged=true \
--restart=always \
-v pwd/data:/var/lib/rabbitmq \
--hostname myRabbit \
-e RABBITMQ_DEFAULT_VHOST=my_vhost  \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.7.28-management

3 消息代理

docker exec rabbitmq2 bash -c \
"rabbitmq-plugins enable rabbitmq_stomp && \
rabbitmq-plugins enable rabbitmq_web_stomp"

在这里插入图片描述

4 创建网络

docker network create rabbitmqnet
docker network ls

5 节点实例

docker run -d
–name=rabbitmq1
-p 5672:5672
-p 15672:15672
-e rabbitmq_nodename=rabbitmq1
-e rabbitmq_erlang_cookie=‘yzsdhwmfsmkembdhsggz’
-h rabbitmq1
–net=rabbitmqnet
rabbitmq:3.7.28-management

docker run -d
–name=rabbitmq2
-p 5673:5672
-p 15673:15672
-e rabbitmq_nodename=rabbitmq2
-e rabbitmq_erlang_cookie=‘yzsdhwmfsmkembdhsggz’
-h rabbitmq2
–net=rabbitmqnet
rabbitmq:3.7.28-management

docker run -d
–name=rabbitmq3
-p 5674:5672
-p 15674:15672
-e rabbitmq_nodename=rabbitmq3
-e rabbitmq_erlang_cookie=‘yzsdhwmfsmkembdhsggz’
-h rabbitmq3
–net=rabbitmqnet
rabbitmq:3.7.28-management

6 组建rabbitmq集群

docker exec rabbitmq2 bash -c
“rabbitmqctl stop_app &&
rabbitmqctl reset &&
rabbitmqctl join_cluster rabbitmq1@rabbitmq1 &&
rabbitmqctl start_app”

docker exec rabbitmq3 bash -c
“rabbitmqctl stop_app &&
rabbitmqctl reset &&
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1 &&
rabbitmqctl start_app”

7 退出集群

docker exec rabbitmq3 bash -c
“rabbitmqctl stop_app &&
rabbitmqctl reset &&
rabbitmqctl start_app”

8 haproxy

docker pull haproxy

haproxy-create.sh

#! /bin/bash
 
docker run -d \
  --name rabbitmq-haproxy \
  -p 1080:80 -p 5677:5677 -p 8001:8001 \
  --net=rabbitmqnet \
  -v /root/rabbitmq/haproxy-etc:/usr/local/etc/haproxy:ro \
  haproxy:latest

haproxy-etc/haproxy.cfg

global
  daemon
  maxconn 256
 
defaults
  mode http
  timeout connect 5000ms
  timeout client 5000ms
  timeout server 5000ms
 
listen rabbitmq_cluster
  bind 0.0.0.0:5677
  option tcplog
  mode tcp
  balance leastconn
  server rabbit1 rabbitmq1:5672 check inter 2s rise 2 fall 3
  server rabbit2 rabbitmq2:5672 check inter 2s rise 2 fall 3
  server rabbit3 rabbitmq3:5672 check inter 2s rise 2 fall 3
 
listen http_front
  bind 0.0.0.0:80
  stats uri /haproxy?stats
 
listen rabbitmq_admin
  bind 0.0.0.0:8001
  server rabbit1 rabbitmq1:15672
  server rabbit2 rabbitmq2:15672
  server rabbit3 rabbitmq3:15672

启动haproxy后,可以通过haproxy来访问rabbitmq集群:http://external-ip:8001
获取haproxy的状态:http://external-ip:1080/haproxy?stats

9 rabbitmq exporter

要收集rabbitmq的metrics给prometheus使用的话,可以使用开源的rabbitmq-exporter

docker pull kbudde/rabbitmq-exporter

启动rabbitmq实例
docker run -d --name=rabbitmq1 -p 5672:5672 -p 15672:15672 -e rabbitmq_nodename=rabbitmq1 -e rabbitmq_erlang_cookie=‘yzsdhwmfsmkembdhsggz’ -h rabbitmq1 --net=rabbitmqnet -p 9090:9090 rabbitmq:3.7-rc-management

开启9090端口,这个是rabbitmq exporter的默认publish_port
启动rabbitmq exporter实例
docker run -d --net=container:rabbitmq1 kbudde/rabbitmq-exporter
获取rabbitmq的metrics

wget http://localhost:9090/metrics

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值