Akiraka Akiraka
  • Home
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • Big Data
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • K8S
    • Kubernetes
    • Helm
  • Other
  • Quark
  • Contribute
  • Home
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • Big Data
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • K8S
    • Kubernetes
    • Helm
  • Other
  • Quark
  • Contribute
首页 Linux Docker RabbitMQ 基于官方

RabbitMQ 基于官方

Akiraka 2年前

https://www.cnblogs.com/sgh1023/p/11296013.html
https://blog.csdn.net/qq_32488647/article/details/81941491

文章目录

  • 端口描述
  • 主机
  • 配置 rabbitmq-01 服务器
  • 配置 rabbitmq-02 服务器
  • 配置 rabbitmq-03 服务器
  • 加入集群
    • 设置 rabbitmq-01 节点
    • 设置 rabbitmq-02 节点
    • 设置 rabbitmq-03 节点
  • 访问浏览器应该就好了

端口描述

  • 集群必须开放 4369和25672端口
端口 描述
4369 erlang集群监听端口
5671 ssl客户端通信端口
5672 默认客户端通信端口
15571 管理web端口
25672 集群通信端口

主机

ip地址 | 主机名
172.16.8.88 | rabbitmq-01
172.16.8.72 | rabbitmq-02
172.16.8.70 | rabbitmq-03

配置 rabbitmq-01 服务器

version: '2'
networks:
  default:
    external:
      name: bole-network
services:
  rabbitmq:
    image: rabbitmq:3.8.1-management
    restart: always
    mem_limit: 1024m
    hostname: rabbitmq-01
    container_name: rabbitmq
    extra_hosts:
      - "rabbitmq-01:172.16.8.88"
      - "rabbitmq-02:172.16.8.72"
      - "rabbitmq-03:172.16.8.70"
    environment:
      TZ: Asia/Shanghai
      RABBITMQ_DEFAULT_USER: "bole"
      RABBITMQ_DEFAULT_PASS: "9uGgW7rIMX6t"
      RABBITMQ_ERLANG_COOKIE: "LIGRAL3A2S"
    volumes:
      - /data/rabbitmq/logs:/var/log/rabbitmq
      - /data/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia
    ports:
      - "25672:25672"
      - "5672:5672"
      - "4369:4369"

配置 rabbitmq-02 服务器

version: '2'
networks:
  default:
    external:
      name: bole-network
services:
  rabbitmq:
    image: rabbitmq:3.8.1-management
    restart: always
    mem_limit: 1024m
    hostname: rabbitmq-02
    container_name: rabbitmq
    extra_hosts:
      - "rabbitmq-01:172.16.8.88"
      - "rabbitmq-02:172.16.8.72"
      - "rabbitmq-03:172.16.8.70"
    environment:
      TZ: Asia/Shanghai
      RABBITMQ_ERLANG_COOKIE: "LIGRAL3A2S"
    volumes:
      - /data/rabbitmq/logs:/var/log/rabbitmq
      - /data/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia
    ports:
      - "25672:25672"
      - "5672:5672"
      - "4369:4369"

配置 rabbitmq-03 服务器

version: '2'
networks:
  default:
    external:
      name: bole-network
services:
  rabbitmq:
    image: rabbitmq:3.8.1-management
    restart: always
    mem_limit: 1024m
    hostname: rabbitmq-03
    container_name: rabbitmq
    extra_hosts:
      - "rabbitmq-01:172.16.8.88"
      - "rabbitmq-02:172.16.8.72"
      - "rabbitmq-03:172.16.8.70"
    environment:
      TZ: Asia/Shanghai
      RABBITMQ_ERLANG_COOKIE: "LIGRAL3A2S"
    volumes:
      - /data/rabbitmq/logs:/var/log/rabbitmq
      - /data/rabbitmq/mnesia:/var/lib/rabbitmq/mnesia
    ports:
      - "25672:25672"
      - "5672:5672"
      - "4369:4369"

加入集群

内存节点和磁盘节点的选择:

每个RabbitMQ节点,要么是内存节点,要么是磁盘节点。内存节点将所有的队列、交换器、绑定、用户等元数据定义都存储在内存中;而磁盘节点将元数据存储在磁盘中。单节点系统只允许磁盘类型的节点,否则当节点重启以后,所有的配置信息都会丢失。如果采用集群的方式,可以选择至少配置一个节点为磁盘节点,其余部分配置为内存节点,,这样可以获得更快的响应。所以本集群中配置节点1位磁盘节点,节点2和节点3位内存节点。

集群中的第一个节点将初始元数据代入集群中,并且无须被告知加入。而第2个和之后加入的节点将加入它并获取它的元数据。要加入节点,需要进入Docker容器,重启RabbitMQ。

设置 rabbitmq-01 节点

docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

设置 rabbitmq-02 节点

docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq-01
rabbitmqctl start_app
exit

设置 rabbitmq-03 节点

docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq-01
rabbitmqctl start_app
exit

访问浏览器应该就好了

#docker#liniux#RabbitMQ#容器编排
1
猜你喜欢
  • Jenkins 升级失败
  • Dockerfile 构建 FreeRadis 镜像
  • KeyCloak Docker Compose 部署
  • 密码保护:KeyCloak 结合 Gitlab SSO 一键登录认证
  • Deepin与UOS多屏显示输出问题
Akiraka
站长
本人擅长 Ai、Au、Fl、Ae、Pr、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、Python、Shell、Go 等单词的拼写,熟悉 Windows、Linux、Mac、Android、IOS 等系统的开关机!
160
文章
24
评论
73
获赞
Popular Articles
TOP1
Kubernetes(k8s)Helm 部署 EFK 集群
2年前
TOP2
Kubernetes(k8s)helm 搭建 prometheus + Grafana 监控
2年前
TOP3
Container 命令ctr、crictl 命令使用说明
11月前
TOP4
Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署
2年前
TOP5
Helm 部署 Loki 日志聚合
2年前
Related Articles
Jenkins 插件与主题配置
2年前
Spark 默认 python版本修改
2年前
CentOS 安装tab命令补全
2年前
修改 Docker 镜像默认存储位置的方法
1年前
Centos 7.8 安装pyenv及使用说明
2年前
Copyright © 2019-2022 Akiraka. 沪18036911号