用docker-compose部署Rabbitmq三节点集群部署方案

这篇具有很好参考价值的文章主要介绍了用docker-compose部署Rabbitmq三节点集群部署方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rabbitmq三节点集群部署方案

1.先准备好三台服务器

主机名

IP

node1

10.4.2.10

node2

10.4.2.59

node3

10.4.2.134

2.安装准备工作(三台都要操作)

(1)在/root目录下先创建一个rabitmq目录用于存放文件

mkdir  rabitmq

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(2)修改主机名和域名解析hosts文件

(1)修改主机名

hostnamectl set-hostname  node1   

hostnamectl set-hostname  node2

hostnamectl set-hostname  node3

node1  node2   node3 分别对应的ip

10.4.2.10  node1

10.4.2.59  node2

10.4.2.134 node3

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(2)编辑hosts文件vi /etc/hosts

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

在末尾写入 (三台都一样

10.4.2.10  node1

10.4.2.59  node2

10.4.2.134 node3

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(3)获取rabbitmq:3.8.19-management版本的镜像(三台都一样

docker pull   rabbitmq:3.8.19-management

(4)创建挂载目录,并且给予相应权限 (三台都要)

mkdir /var/lib/rabbitmq

chmod 777 /var/lib/rabbitmq

mkdir /var/log/rabbitmq

 chmod 777 /var/log/rabbitmq

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

 echo 'rabbitmq_cluster_cookie' > /var/lib/rabbitmq/.erlang.cookie

chmod 600 /var/lib/rabbitmq/.erlang.cookie

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(5)在/root/rabitmq目录下创建一个docker-compose.yml的文件(三台都要

touch  docker-compose.yml

(6)编辑docker-compose.yml文件(三台都要做

Vi  docker-compose.yml

(1)10.4.2.10  node1 docker-compose.yml

version: '3.1'

services:

  rabbitmq:

    image:  rabbitmq:3.8.19-management

    network_mode: "host" # 网络模式使用主机模式

    container_name: rabbitmq1

    privileged: true

    volumes:

     - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据

     - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志

     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    environment:

      - RABBITMQ_DEFAULT_USER=guest

      - RABBITMQ_DEFAULT_PASS=guest

    restart: always

(2).10.4.2.59 node2 docker-compose.yml

version: '3.1'

services:

  rabbitmq:

    image:  rabbitmq:3.8.19-management

    network_mode: "host" # 网络模式使用主机模式

    container_name: rabbitmq2

    privileged: true

    volumes:

     - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据

     - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志

     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    environment:

      - RABBITMQ_DEFAULT_USER=guest

      - RABBITMQ_DEFAULT_PASS=guest

    restart: always

(3)10.4.2.134 node3 docker-compose.yml

version: '3.1'

services:

  rabbitmq:

    image:  rabbitmq:3.8.19-management

    network_mode: "host" # 网络模式使用主机模式

    container_name: rabbitmq3

    privileged: true

    volumes:

     - /var/lib/rabbitmq:/var/lib/rabbitmq   # 挂载数据

     - /var/log/rabbitmq:/var/log/rabbitmq   # 挂载日志

     - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

    environment:

      - RABBITMQ_DEFAULT_USER=guest

      - RABBITMQ_DEFAULT_PASS=guest

    restart: always

(7)直接启动docker-compose up -d  (三台都一样)

启动docker-compose up -d

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(8)查看服务docker ps |grep  ra

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(9)

浏览器看一下图形化页面   如: 10.4.2.10:15672  

即:ip:15672访问        账号guest 密码guest  

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(10)node2和node3加入node1集群(以node3为例,node2按照node3步骤一样去加入node1集群即可

  1. Node3加入集群

先node1上面操作:

docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl stop_app'

docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl reset'

docker exec rabbitmq1 /bin/bash -c 'rabbitmqctl start_app'

docker exec rabbitmq1 /bin/bash -c 'rabbitmq-plugins enable rabbitmq_management'

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

然后再node3上面操作:

docker exec rabbitmq3 /bin/bash -c 'rabbitmqctl stop_app'

docker exec rabbitmq3  /bin/bash -c 'rabbitmqctl reset'

docker exec rabbitmq3  /bin/bash -c 'rabbitmqctl join_cluster  rabbit@node1'

docker exec rabbitmq3  /bin/bash -c 'rabbitmqctl start_app'

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(11)开启统计 (三台都一样)

进入容器然后将这个文件的值改为false

/etc/rabbitmq/conf.d//management_agent.disable_metrics_collector.conf 中的值改为 false

docker exec -it rabbitmq1 /bin/bash

echo 'management_agent.disable_metrics_collector = false' > /etc/rabbitmq/conf.d//management_agent.disable_metrics_collector.conf
用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

## 然后重启容器

docker restart  rabbitmq1

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

测试加入成功与否 ,查看其状态 rabbitmqctl cluster_status

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

然后去图形化页面看一看 10.4.2.10:15672   账号:guest密码 guest

Node1  10.4.2.10

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

Node2  10.4.2.59

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

Node3 10.4.2.134

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

3.我们设置一下开机自启。

(1)首先cd  /etc/systemd/system目录下

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

(2)然后 vi  rabbitmq-docker-compose.service

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

这是rabbitmq-docker-compose.service文件,里面有两处可能需要改,请注意下面的提示

 

[Unit]

Description=Docker Compose Application

Requires=docker.service

After=docker.service

[Service]

Type=oneshot

RemainAfterExit=yes

WorkingDirectory=/root/rabitmq/

ExecStart=/usr/local/bin/docker-compose up -d

ExecStop=/usr/local/bin/docker-compose down

TimeoutStartSec=0

[Install]

WantedBy=multi-user.target

其中需要注意的是:WorkingDirectory是docker-compose.yml所在目录,可以去看一下它在哪个目录之下

find   /  -name  docker-compose.yml


用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

直接找到在/root/rabitmq/ 下

ExecStart和ExecStop是指定docker-compose的可执行性文件的目录,可以用whereis  docker-compose查看

用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器
 

加一个可执行权限

chmod a+x rabbitmq-docker-compose.service



用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

  1. 编辑好之后,我们先重新加载 systemd管理单元:

  2. systemctl daemon-reload
    然后再启动服务并且设置开机自启

  3. systemctl start  rabbitmq-docker-compose

     systemctl enable  rabbitmq-docker-compose

  4. 用docker-compose部署Rabbitmq三节点集群部署方案,docker,rabbitmq,容器

这样我们开机自启就设置完成了,每当我们重启开机的时候,服务就会自动开启,再也不用我们手动启动服务了,真的很方便!!!!

 Docker Compose 部署 RabbitMQ 三节点集群有以下好处:

  1. 简化部署过程: Docker Compose 允许你使用一个单独的配置文件定义和管理多个容器,它可以提供简单且一致的部署体验。通过编写一个 YAML 文件来定义 RabbitMQ 的三个节点,可以轻松地启动整个集群,而无需手动操作每个节点。

  2. 可移植性: 使用 Docker Compose 部署的 RabbitMQ 集群可以在不同的环境中轻松迁移和部署,只需将配置文件和容器镜像移动到新的环境即可。这种可移植性确保了在开发、测试和生产环境之间的一致性,减少了部署和配置的复杂性。

  3. 扩展性: Docker Compose 具备水平扩展的能力,可以根据需要轻松地添加更多的 RabbitMQ 节点。通过简单地复制节点的定义并进行适当的配置,就可以将集群规模扩大到满足高负载需求。

  4. 隔离性: 使用 Docker 容器化部署 RabbitMQ 集群可以提供良好的隔离性。每个节点都运行在独立的容器中,彼此互不干扰。这种隔离性有助于保护集群的稳定性和安全性。

  5. 可管理性: Docker Compose 提供了一组命令和工具,可以轻松地管理和监控整个 RabbitMQ 集群。通过使用 Docker Compose 的命令,可以方便地启动、停止、重启和销毁整个集群。此外,还可以使用适当的监控工具来监视和管理节点的运行状态。

总之,使用 Docker Compose 部署 RabbitMQ 三节点集群可以提供便捷的部署过程、可移植性、扩展性、隔离性和可管理性等多个优势。这使得集群的部署、配置和管理变得更加简单和高效。文章来源地址https://www.toymoban.com/news/detail-761661.html

到了这里,关于用docker-compose部署Rabbitmq三节点集群部署方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker-compose 部署flink集群

    详见 https://blog.csdn.net/qq_42267173/article/details/124687804 https://blog.csdn.net/m0_72838865/article/details/126421685 https://www.cnblogs.com/cw2blog/p/16689584.html 容器启停相关的 启动报错 解决参考:https://blog.csdn.net/xiojing825/article/details/79494408 docker-compose up -d 后台运行,不输出日志到窗口 想web访问,但

    2024年02月05日
    浏览(31)
  • 如何通过docker-compose部署ES集群

    一、概述 Linux系统搭建ES集群的方式有很多种,其中通过docker-compose进行安装最为方便。 二、准备 1、配置虚拟机 1.1、设置IP 将虚拟机IP设置为192.168.1.100; 1.2、设置内存 将虚拟机内存设置为4G,内存太小可能导致某个ES节点无法正常运行; 1.3、修改limits.conf limits.conf文件可以

    2024年02月16日
    浏览(35)
  • docker-compose部署kafka单机和集群

    使用 docker-compose 部署 Kafka:3.5。 从 3.3 版本后,Kafka 引入了 KRaft 来替代 ZooKeeper,所以我们不必再部署 zk 了。 记得修改 KAFKA_CFG_ADVERTISED_LISTENERS 的 ip 为自己的 记得修改 KAFKA_CFG_ADVERTISED_LISTENERS 的 ip 地址为自己的 我们之后测试肯定用集群部署,就算是测试,也不用单机模式,

    2024年02月01日
    浏览(36)
  • docker-compose部署hbase集群 —— 筑梦之路

    HBase  是一个开源的  NoSQL   列式分布式数据库 ,它主要基于  Hadoop  分布式文件系统(HDFS)运行。 HBase  最初是由  Facebook  公司贡献,其基于  Google 的  Bigtable  模型开发,在强大的水平扩展性和高可用性的基础上,提供了可以扩展垂直规模的存储。 HBase  主要特点如下

    2024年02月10日
    浏览(36)
  • 分布式训练 最小化部署docker swarm + docker-compose落地方案

    目录 背景: 前提条件: 一、docker环境初始化配置 1. 安装nvidia-docker2 2. 安装docker-compose工具  3. 获取GPU UUID 4. 修改docker runtime为nvidia,指定机器的UUID 二、docker-swarm 环境安装 1. 初始化swarm管理节点 2. 加入工作节点 3. 查看集群节点 三、拷贝基础镜像及部署文件  1. Docker 镜

    2024年02月10日
    浏览(40)
  • 3节点ubuntu24.04服务器docker-compose方式部署高可用elk+kafka日志系统并接入nginx日志

    节点名称 IP 部署组件及版本 配置文件路径 机器CPU 机器内存 机器存储 Log-001 10.10.100.1 zookeeper:3.4.13 kafka:2.8.1 elasticsearch:7.7.0 logstash:7.7.0 kibana:7.7.0 zookeeper:/data/zookeeper kafka:/data/kafka elasticsearch:/data/es logstash:/data/logstash kibana:/data/kibana 2*1c/16cores 62g 50g 系统 800g 数据盘 Log-002 10.10.10

    2024年04月27日
    浏览(29)
  • (实战)docker-compose部署分布式日志方案EFK(Elasticsearch+Fluentd+Kibana)

    目录 背景 技术架构 部署安装 环境准备 配置Logback并模拟产生日志 制作fluentd镜像 运行docker-compose 效果展示         在现代的软件开发和运维领域,监控和日志管理是至关重要的任务。随着应用程序规模的扩大和分布式系统的普及,有效地跟踪和分析日志数据成为了挑战

    2024年02月03日
    浏览(27)
  • 使用Docker Swarm部署RabbitMQ+HAProxy高可用集群(三节点-镜像模式)

    当前规划中,只启动一个HAProxy服务,主要用来做RabbitMQ节点的负载均衡和代理,但是HAProxy可能会出现单点故障,后续需要启动多个HAProxy节点,然后结合Keepalived来进行 设置虚拟IP 做故障转移 节点名称 节点主机名 IP地址 角色 运行服务 cluster01 cluster01 192.168.12.48 Docker Swarm Mana

    2024年02月14日
    浏览(29)
  • 【RabbitMQ】【Docker】基于docker-compose构建rabbitmq容器

    本文通过docker-compose构建一个单体的rabbtimq容器。 首先需要有docker和docker-compose环境,docker安装[1],docker-compose安装[2]。 通过下列命令确定docker、docker-compose是否安装成功。 docker-compose在/usr/local/bin里,我们就在/usr/local下构建一个docker-compose目录,里面再构建各级不同容器的目

    2024年04月25日
    浏览(32)
  • docker-compose安装rabbitmq

    账号密码都是guest

    2024年02月16日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包