【RabbitMQ实战】07 3分钟部署一个RabbitMQ集群

news2024/11/24 2:49:25

一、集群的安装部署

我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群,开始。
前提条件,docker安装了docker-compose。如果没安装的话,参考这里

docker-compose文件参考bitnami官网:https://github.com/bitnami/containers/tree/main/bitnami/rabbitmq#setting-up-a-cluster
这是最简单的方式安装一个RabbitMQ集群
docker-compose.yml如下:

version: '2'

services:
  stats:
    image: bitnami/rabbitmq
    environment:
      - RABBITMQ_NODE_TYPE=stats
      - RABBITMQ_NODE_NAME=rabbit@stats
      - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
    ports:
      - '15672:15672'
    volumes:
      - 'rabbitmqstats_data:/bitnami/rabbitmq/mnesia'
  queue-disc1:
    image: bitnami/rabbitmq
    environment:
      - RABBITMQ_NODE_TYPE=queue-disc
      - RABBITMQ_NODE_NAME=rabbit@queue-disc1
      - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats
      - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
    volumes:
      - 'rabbitmqdisc1_data:/bitnami/rabbitmq/mnesia'
  queue-ram1:
    image: bitnami/rabbitmq
    environment:
      - RABBITMQ_NODE_TYPE=queue-ram
      - RABBITMQ_NODE_NAME=rabbit@queue-ram1
      - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats
      - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
    volumes:
      - 'rabbitmqram1_data:/bitnami/rabbitmq/mnesia'

volumes:
  rabbitmqstats_data:
    driver: local
  rabbitmqdisc1_data:
    driver: local
  rabbitmqram1_data:
    driver: local

新建docker-compose.yml

我新建了一个目录mycompose,进入到这个目录,然后用上面的yml新建一个文件
用cat命令,输出到docker-compose.yml

[root@localhost mycompose]# cat >> docker-compose.yml << EOF
> version: '2'
> 
> services:
>   stats:
>     image: bitnami/rabbitmq
>     environment:
>       - RABBITMQ_NODE_TYPE=stats
>       - RABBITMQ_NODE_NAME=rabbit@stats
>       - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
>     ports:
>       - '15672:15672'
>     volumes:
>       - 'rabbitmqstats_data:/bitnami/rabbitmq/mnesia'
>   queue-disc1:
>     image: bitnami/rabbitmq
>     environment:
>       - RABBITMQ_NODE_TYPE=queue-disc
>       - RABBITMQ_NODE_NAME=rabbit@queue-disc1
>       - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats
>       - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
>     volumes:
>       - 'rabbitmqdisc1_data:/bitnami/rabbitmq/mnesia'
>   queue-ram1:
>     image: bitnami/rabbitmq
>     environment:
>       - RABBITMQ_NODE_TYPE=queue-ram
>       - RABBITMQ_NODE_NAME=rabbit@queue-ram1
>       - RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats
>       - RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
>     volumes:
>       - 'rabbitmqram1_data:/bitnami/rabbitmq/mnesia'
> 
> volumes:
>   rabbitmqstats_data:
>     driver: local
>   rabbitmqdisc1_data:
>     driver: local
>   rabbitmqram1_data:
>     driver: local
> EOF
[root@localhost mycompose]# ls -al
总用量 4
drwxr-xr-x. 2 root root   32 924 21:26 .
dr-xr-x---. 6 root root  254 924 21:23 ..
-rw-r--r--. 1 root root 1017 924 21:26 docker-compose.yml

查看文件,建好了

[root@localhost mycompose]# ls -al
总用量 4
drwxr-xr-x. 2 root root   32 924 21:26 .
dr-xr-x---. 6 root root  254 924 21:23 ..
-rw-r--r--. 1 root root 1017 924 21:26 docker-compose.yml

在当前目录执行docker-compose up

[root@localhost mycompose]# docker-compose up

执行效果如下:
在这里插入图片描述
启动完成后,发现确实是启了三个RabbitMQ的容器

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE              COMMAND                   CREATED         STATUS         PORTS                                                                                                         NAMES
a8abe421a79a   bitnami/rabbitmq   "/opt/bitnami/script…"   2 minutes ago   Up 2 minutes   4369/tcp, 5551-5552/tcp, 5671-5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp   mycompose-stats-1
d797db9bbbbb   bitnami/rabbitmq   "/opt/bitnami/script…"   2 minutes ago   Up 2 minutes   4369/tcp, 5551-5552/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp                                            mycompose-queue-ram1-1
7ed4e7406553   bitnami/rabbitmq   "/opt/bitnami/script…"   2 minutes ago   Up 2 minutes   4369/tcp, 5551-5552/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp                                            mycompose-queue-disc1-1

进入其中一个容器

如上面所示,我们进入ID为a8abe421a79a的容器。

[root@localhost ~]# docker exec -it a8a /bin/bash

查看集群状态

I have no name!@a8abe421a79a:/$ rabbitmqctl cluster_status
Cluster status of node rabbit@stats ...
Basics

Cluster name: rabbit@a8abe421a79a

Disk Nodes

rabbit@queue-disc1
rabbit@stats

RAM Nodes

rabbit@queue-ram1

Running Nodes

rabbit@queue-disc1
rabbit@queue-ram1
rabbit@stats

Versions

rabbit@queue-disc1: RabbitMQ 3.9.11 on Erlang 24.2
rabbit@queue-ram1: RabbitMQ 3.9.11 on Erlang 24.2
rabbit@stats: RabbitMQ 3.9.11 on Erlang 24.2

Maintenance status

Node: rabbit@queue-disc1, status: not under maintenance
Node: rabbit@queue-ram1, status: not under maintenance
Node: rabbit@stats, status: not under maintenance

Alarms

(none)

Network Partitions

(none)

Listeners

Node: rabbit@queue-disc1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@queue-disc1, interface: [::], port: 15692, protocol: http/prometheus, purpose: Prometheus exporter API over HTTP
Node: rabbit@queue-disc1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: rabbit@queue-ram1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@queue-ram1, interface: [::], port: 15692, protocol: http/prometheus, purpose: Prometheus exporter API over HTTP
Node: rabbit@queue-ram1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: rabbit@stats, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@stats, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@stats, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

Feature flags

Flag: drop_unroutable_metric, state: enabled
Flag: empty_basic_get_metric, state: enabled
Flag: implicit_default_bindings, state: enabled
Flag: maintenance_mode_status, state: enabled
Flag: quorum_queue, state: enabled
Flag: stream_queue, state: enabled
Flag: user_limits, state: enabled
Flag: virtual_host_metadata, state: enabled

进入控制台:http://192.168.56.201:15672/#/
账号默认是:用户名:user,密码:bitnami
在这里插入图片描述
如果想停止当前集群,可以用docker-compose down命令。
常用命令如下

docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]

部分命令选项如下:

-f,–file:指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个 yml;
-p, --project-name:指定工程名称,默认使用 docker-compose.yml 文件所在目录的名称;
-v:打印版本并退出;
–log-level:定义日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1051148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Java打印长方形、平行四边形 、三角形、菱形、空心菱形

今天复习使用嵌套for来完成一些任务&#xff0c;于是想着打印一些图形来练习 思考感悟 长方形 行数 和 每行的星星数嵌套遍历即可 平行四边形 核心&#xff1a;每行空格数总行数-行数 行数空格数132231 三角形 核心&#xff1a;每行星星数2*当前行数-1 行数星星数1123…

【每日一题】2769. 找出最大的可达成数字

2769. 找出最大的可达成数字 - 力扣&#xff08;LeetCode&#xff09; 给你两个整数 num 和 t 。 如果整数 x 可以在执行下述操作不超过 t 次的情况下变为与 num 相等&#xff0c;则称其为 可达成数字 &#xff1a; 每次操作将 x 的值增加或减少 1 &#xff0c;同时可以选择将 …

Elasticsearch:使用 Elasticsearch 进行语义搜索

在数字时代&#xff0c;搜索引擎在通过浏览互联网上的大量可用信息来检索数据方面发挥着重要作用。 此方法涉及用户在搜索栏中输入特定术语或短语&#xff0c;期望搜索引擎返回与这些确切关键字匹配的结果。 虽然关键字搜索对于简化信息检索非常有价值&#xff0c;但它也有其局…

【分布式计算】二、架构(Architectures)

1.中心化架构&#xff08;Centralized Architectures&#xff09; 1.1.经典C/S模型 服务器&#xff1a;一个或多个进程提供服务 客户端&#xff1a;一个或多个进程使用服务 客户端和服务器可以在不同的机器上 客户端遵循请求/回复模型 1.2.传统三层视图 用户界面层&#x…

【正点原子】开发板可以ping通电脑,电脑ping不通开发板

Uboot模式下 uboot模式下因为相关服务没有开启&#xff0c;只能uboot ping通电脑&#xff0c;电脑ping不通开发板 note: 电脑需要关闭防火墙 App模式 该模式下&#xff0c;如果已经打开网络还是ping不通开发板 关闭电脑wifi再重试

WebPack-打包工具

从图中我们可以看出&#xff0c;Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件&#xff0c;减少了页面的请求. 下面举个例子 &#xff1a; main.js 我们只命名导出一个变量 export const name"老六"index.js import { name } from "./tset/…

uboot启动流程涉及reset汇编函数

一. uboot启动流程中函数 之前了解了uboot链接脚本文件 u-boot.lds。 从 u-boot.lds 中我们已经知道了入口点是 arch/arm/lib/vectors.S 文件中的 _start。 本文了解 一下&#xff0c;uboot启动过程中涉及的 reset 函数。本文继上一篇文章学习&#xff0c;地址如下&#xff…

外包干了2个月,技术有明显退步...

先说一下自己的情况&#xff0c;本科生&#xff0c;18年通过校招进入广州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!可我已经在一个企业干了3年的功能测试&…

ELK 处理 Spring Boot 日志

ELK 处理 Spring Boot 日志&#xff0c;妙啊&#xff01; 来源&#xff1a;ibm.com/developerworks/cn/java /build-elk-and-use-it-for-springboot -and-nginx/index.html ELK 简介 Logstash Elasticsearch Kibana ELK 实现方案 ELK 平台搭建 安装 Logstash 安装 Elas…

ROS系统读取USB相机图像数据

ROS系统读取USB相机图像数据 前言usb_cam 功能包下载与编译摄像头选择连接摄像头可配置参数 前言 usb_cam功能包简介 为了丰富机器人与外界的交互方式&#xff0c;已经增加了与机器人的语音交互方式&#xff0c;不仅使机器人能够说话发声&#xff0c;还能听懂我们说的话&#…

友思特案例|友思特 Ensenso 3D相机:汽车工业自动化的革命性力量

01 内容摘要 在竞争激烈的汽车行业&#xff0c;自动化生产至关重要。友思特 Ensenso 3D相机为汽车制造商提供了可靠的工具和技术支持&#xff0c;助力多个关键环节。它在汽车座位泡棉切割中提高精确度&#xff0c;降低浪费&#xff0c;提高生产效率&#xff1b;在汽车压铸零部…

第七章 查找 九、B+树

目录 一、定义 二、B树需要满足的条件 三、重要考点 一、定义 1、B树是一种常用的数据结构&#xff0c;用于实现关系型数据库中的索引。 2、其特点是可以在磁盘等外存储器上高效地存储大量数据&#xff0c;并支持快速的查询、插入、删除等操作。 3、B树的结构类似于二叉搜…

ASUS华硕ZenBook 13灵耀U 2代U3300F笔记本UX333FN/FA原装出厂Win10系统工厂安装模式

系统自带所有驱动、出厂主题壁纸、系统属性华硕专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序 下载链接&#xff1a;https://pan.baidu.com/s/1dK0vMZMECPlT63Rb6-jeFg?pwdbym5 所需要工具&#xff1a;16G或以上的U盘(非必需) 文件格式&#xff1a;HDI,SWP,O…

RocketMQ 消息丢失问题排查记录

现象 在 spring boot 项目中集成 RocketMQ 时发现消费者接收消息丢失&#xff0c;比如生产者发送了 10 条消息&#xff0c;但是消费者只能接收到 4 条。 在项目中使用的 RocketMQ 版本是 4.9.2&#xff0c;rocketmq-spring-boot-starter 版本是 2.2.2&#xff0c;消息处理逻辑…

聊聊并发编程——Condition

目录 一.synchronized wait/notify/notifyAll 线程通信 二.Lock Condition 实现线程通信 三.Condition实现通信分析 四.JUC工具类的示例 一.synchronized wait/notify/notifyAll 线程通信 关于线程间的通信&#xff0c;简单举例下&#xff1a; 1.创建ThreadA传入共享…

获取dom元素

<button type"button" click"greet">count is {{ count }}</button>function greet(event) {if (event) {console.log(event)console.log(event.target)console.log(event.target.tagName)} } 很明显没传参数&#xff0c;但是获取到了相应的值…

JIT介绍

JIT全称&#xff1a;Just in time。中文译为&#xff1a;即时的、实时的。 JVM中的这项技术名为&#xff1a;实时编译技术&#xff0c;也叫即时编译技术。就是在java程序运行的过程中&#xff0c;将字节码编译为机器码运行在本地&#xff0c;而不是通过JVM解释运行&#xff08;…

微信公众号网页授权登录获取用户基本信息

概述 微信公众号网页授权登录后微信获取用户基本信息&#xff0c;部署即可运行完整demo 详细 一、前言 &#xff08;1&#xff09;适合人群 1&#xff0c;JAVA服务端开发人员 2&#xff0c;初级人员开发人员 3&#xff0c;了解spring springboot maven 3&#xff0c;了…

结构型设计模式——桥接模式

摘要 桥接模式(Bridge pattern): 使用桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。 一、桥接模式的意图 将抽象与实现分离开来&#xff0c;使它们可以独立变化。 二、桥接模式的类图 Abstraction: 定义抽象类的接口Implementor: 定义实现类接口 …

蓝桥杯 题库 简单 每日十题 day12

01 列名 问题描述 在Excel中&#xff0c;列的名称使用英文字母的组合。前26列用一个字母&#xff0c;依 次为A到Z&#xff0c;接下来2626列使用两个字母的组合&#xff0c;依次为AA到zz. 请问第2022列的名称是什么&#xff1f; 答案提交 这是一道结果填空的题&#xff0c;你只…