首页 > 其他分享 >docker安装rabbitmq3.11.9镜像集群

docker安装rabbitmq3.11.9镜像集群

时间:2023-12-29 16:33:28浏览次数:29  
标签:-- rabbitmq rabbitmqctl rabbit 镜像 docker node3 rabbitmq3.11

准备3台服务器安装配置镜像集群

IP1:192.168.0.1

IP2:192.168.0.2

IP3:192.168.0.3

yum install -y lrzsz telnet nc iftop unzip yum-utils epel-release

systemctl stop firewalld.service && systemctl disable firewalld.service

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

vi /etc/docker/daemon.json

{

   "data-root": "/data/docker"

}

systemctl enable docker.service

systemctl enable containerd.service

systemctl start docker

一、启动集群容器

docker run -d --name rabbitmq-node1 --hostname rabbitmq-node1 \

--add-host rabbitmq-node2:192.168.0.2 \

--add-host rabbitmq-node3:192.168.0.3 \

-p "1883:1883" \

-p "4369:4369" \

-p "5672:5672" \

-p "15672:15672" \

-p "25672:25672" \

-p "35672:35672" \

-e RABBITMQ_DEFAULT_USER=admin \

-e RABBITMQ_DEFAULT_PASS=123456 \

-e RABBITMQ_ERLANG_COOKIE="crazy" \

-v /data/rabbitMQ/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \

-v /data/rabbitMQ/data:/var/lib/rabbitmq \

--restart=always \

rabbitmq:3.11.9-management


vi /data/rabbitMQ/rabbitmq.conf

## On first start RabbitMQ will create a vhost and a user. These

## config items control what gets created.

## Relevant doc guide: https://rabbitmq.com/access-control.html

##

default_vhost = /

default_user = admin

default_pass = 123456

mqtt.listeners.tcp.default = 1883

vm_memory_high_watermark.absolute = 4GB


docker run -d --name rabbitmq-node2 --hostname rabbitmq-node2 \

--add-host rabbitmq-node1:192.168.0.1 \

--add-host rabbitmq-node3:192.168.0.3 \

-p "1883:1883" \

-p "4369:4369" \

-p "5672:5672" \

-p "15672:15672" \

-p "25672:25672" \

-p "35672:35672" \

-e RABBITMQ_DEFAULT_USER=admin \

-e RABBITMQ_DEFAULT_PASS=123456 \

-e RABBITMQ_ERLANG_COOKIE="crazy" \

-v /data/rabbitMQ/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \

-v /data/rabbitMQ/data:/var/lib/rabbitmq \

--restart=always \

rabbitmq:3.11.9-management


docker run -d --name rabbitmq-node3 --hostname rabbitmq-node3 \

--add-host rabbitmq-node1:192.168.0.1 \

--add-host rabbitmq-node2:192.168.0.2 \

-p "1883:1883" \

-p "4369:4369" \

-p "5672:5672" \

-p "15672:15672" \

-p "25672:25672" \

-p "35672:35672" \

-e RABBITMQ_DEFAULT_USER=admin \

-e RABBITMQ_DEFAULT_PASS=123456 \

-e RABBITMQ_ERLANG_COOKIE="crazy" \

-v /data/rabbitMQ/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \

-v /data/rabbitMQ/data:/var/lib/rabbitmq \

--restart=always \

rabbitmq:3.11.9-management


在rabbitmq-node2节点执行加入集群:

docker exec -it rabbitmq-node2 /bin/bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster --ram rabbit@rabbitmq-node1

rabbitmqctl start_app

rabbitmqctl cluster_status


在rabbitmq-node3节点执行加入集群:

docker exec -it rabbitmq-node3 /bin/bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster --ram rabbit@rabbitmq-node1

rabbitmqctl start_app

rabbitmqctl cluster_status


二、配置镜像队列

方式1: 命令行方式

在其中任意一个节点上执行

rabbitmqctl set_policy ct-ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

方式2: web界面方式

docker安装rabbitmq3.11.9镜像集群_rabbitmq集群

将所有队列设置为镜像队列,并且队列会被复制到所有节点,各个节点状态一致。到此为止RabbitMQ高可用集群就已经搭建完成,然后重启服务测试一下其队列是否在从节点同步。


三、安装插件 rabbitmq_delayed_message_exchange、rabbitmq_mqtt

首先从rabbitmq官网下载插件rabbitmq_delayed_message_exchange-3.11.1.ez

docker cp /root/src/rabbitmq_delayed_message_exchange-3.11.1.ez rabbitmq-node1:/plugins/

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

rabbitmq-plugins enable rabbitmq_mqtt

rabbitmq-plugins list -e

如有多节点,将其他节点执行同样操作即可


四、配置用户权限

默认admin用户也只有登录权限,需要授予读写权限

rabbitmqctl list_users

rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'

rabbitmqctl list_user_permissions admin


常用命令

#删除用户guest

rabbitmqctl delete_user guest  

#将rabbitmq-node2踢出集群

rabbitmqctl stop_app

rabbitmqctl forget_cluster_node rabbit@rabbitmq-node2

更改节点存储类型,disc表示磁盘,ram表示内存

rabbitmqctl change_cluster_node_type ram


注意避坑

集群节点安装延时插件rabbitmq_delayed_message_exchange 报错:

root@rabbitmq-node3:/# rabbitmq-plugins enable rabbitmq_delayed_message_exchange

RABBITMQ_ERLANG_COOKIE env variable support is deprecated and will be REMOVED in a future version. Use the $HOME/.erlang.cookie file or the --erlang-cookie switch instead.

Enabling plugins on node rabbit@rabbitmq-node3:

rabbitmq_delayed_message_exchange

The following plugins have been configured:

 rabbitmq_delayed_message_exchange

 rabbitmq_management

 rabbitmq_management_agent

 rabbitmq_mqtt

 rabbitmq_prometheus

 rabbitmq_web_dispatch

Applying plugin configuration to rabbit@rabbitmq-node3...

Stack trace:  

** (CaseClauseError) no case clause matching: {:error, {:timeout_waiting_for_tables, [:"rabbit@rabbitmq-node1", :"rabbit@rabbitmq-node3", :"rabbit@rabbitmq-node2"], [:"rabbit_delayed_messagerabbit@rabbitmq-node3", :"rabbit_delayed_messagerabbit@rabbitmq-node3_index"]}}

   (rabbitmqctl 3.11.0) lib/rabbitmq/cli/plugins/plugins_helpers.ex:112: RabbitMQ.CLI.Plugins.Helpers.update_enabled_plugins/4

   (rabbitmqctl 3.11.0) lib/rabbitmq/cli/plugins/commands/enable_command.ex:127: anonymous fn/6 in RabbitMQ.CLI.Plugins.Commands.EnableCommand.do_run/2

   (elixir 1.14.2) lib/stream.ex:1527: anonymous fn/2 in Stream.iterate/2

   (elixir 1.14.2) lib/stream.ex:1740: Stream.do_unfold/4

   (elixir 1.14.2) lib/stream.ex:1811: Enumerable.Stream.do_each/4

   (elixir 1.14.2) lib/stream.ex:1051: Stream.do_transform_inner_enum/7

   (elixir 1.14.2) lib/stream.ex:1811: Enumerable.Stream.do_each/4

   (elixir 1.14.2) lib/enum.ex:2514: Enum.reduce_while/3

{:case_clause, {:error, {:timeout_waiting_for_tables, [:"rabbit@rabbitmq-node1", :"rabbit@rabbitmq-node3", :"rabbit@rabbitmq-node2"], [:"rabbit_delayed_messagerabbit@rabbitmq-node3", :"rabbit_delayed_messagerabbit@rabbitmq-node3_index"]}}}


解决方法:将集群节点退出集群然后以磁盘节点重新加入集群即可。内存节点无法正常安装延时插件。




标签:--,rabbitmq,rabbitmqctl,rabbit,镜像,docker,node3,rabbitmq3.11
From: https://blog.51cto.com/gyj110/9028788

相关文章

  • DockerCompose中重启某个服务时提示: (iptables failed: iptables --wait -t nat -A D
    场景DockerCompose修改某个服务的配置(添加或编辑端口号映射)后如何重启单个服务使其生效:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/134666413除了以上重启某个服务的方式外。基于docker-compose的方式,如果只是要单纯的重启某个服务,则可以通过docker-compo......
  • ubuntu 安装 docker
    ubuntu安装docker详细步骤ubuntu下自带了docker的库,不需要添加新的源。但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。卸载旧版本apt-getremovedockerdocker-enginedocker.iocontainerdrunc安装前提依赖aptupdateapt-getinstallca-certificates......
  • macOS Sonoma 14 (23A344) 正式版 Boot ISO 原版可引导镜像下载
    macOSSonoma14(23A344)正式版BootISO原版可引导镜像下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。作者主页:sysin.orgmacOSSonoma推出全新功......
  • macOS Monterey 12.7 (21G816) Boot ISO 原版可引导镜像
    macOSMonterey12.7(21G816)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月22日,Apple为macOS和iOS等旧版......
  • macOS Monterey 12.6.9 (21G726) Boot ISO 原版可引导镜像
    macOSMonterey12.6.9(21G726)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等旧......
  • macOS Big Sur 11.7.10 (20G1427) Boot ISO 原版可引导镜像
    macOSBigSur11.7.10(20G1427)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等旧......
  • macOS Sonoma 14.1.1 (23B81) 正式版 Boot ISO 原版可引导镜像下载
    macOSSonoma14.1.1(23B81)正式版BootISO原版可引导镜像下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。作者主页:sysin.org更新摘要:macOSSonoma......
  • linux环境docker安装使用nginx
    1、dockersearchnginx 命令来查看可用版本$dockersearchnginxNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDnginxOfficialbuildofNginx.3260[OK]......
  • Docker安装sqlserver-2019(已做持久化)
    Docker安装sqlserver-2019一.新建挂载目录并赋权mkdirsqlservercdsqlservermkdir-p/data/mssql#给目录赋予写的权限,不然在容器启动的时候,文件无法挂载chmod-R777./data/mssql二.准备docker-compose文件#在预先创建的sqlserver目录下vidocker-compose.yml#写入......
  • macOS Sonoma 14.2.1 (23C71) 正式版 Boot ISO 原版可引导镜像下载 (安全更新)
    macOSSonoma14.2.1(23C71)正式版BootISO原版可引导镜像下载(安全更新)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。作者主页:sysin.org更新摘要:m......