当前位置: 首页 > news >正文

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

一、集群的安装部署

我们还是利用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/rabbitmqenvironment:- RABBITMQ_NODE_TYPE=stats- RABBITMQ_NODE_NAME=rabbit@stats- RABBITMQ_ERL_COOKIE=s3cr3tc00ki3ports:- '15672:15672'volumes:- 'rabbitmqstats_data:/bitnami/rabbitmq/mnesia'queue-disc1:image: bitnami/rabbitmqenvironment:- RABBITMQ_NODE_TYPE=queue-disc- RABBITMQ_NODE_NAME=rabbit@queue-disc1- RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats- RABBITMQ_ERL_COOKIE=s3cr3tc00ki3volumes:- 'rabbitmqdisc1_data:/bitnami/rabbitmq/mnesia'queue-ram1:image: bitnami/rabbitmqenvironment:- RABBITMQ_NODE_TYPE=queue-ram- RABBITMQ_NODE_NAME=rabbit@queue-ram1- RABBITMQ_CLUSTER_NODE_NAME=rabbit@stats- RABBITMQ_ERL_COOKIE=s3cr3tc00ki3volumes:- 'rabbitmqram1_data:/bitnami/rabbitmq/mnesia'volumes:rabbitmqstats_data:driver: localrabbitmqdisc1_data:driver: localrabbitmqram1_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 ...
BasicsCluster name: rabbit@a8abe421a79aDisk Nodesrabbit@queue-disc1
rabbit@statsRAM Nodesrabbit@queue-ram1Running Nodesrabbit@queue-disc1
rabbit@queue-ram1
rabbit@statsVersionsrabbit@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.2Maintenance statusNode: rabbit@queue-disc1, status: not under maintenance
Node: rabbit@queue-ram1, status: not under maintenance
Node: rabbit@stats, status: not under maintenanceAlarms(none)Network Partitions(none)ListenersNode: 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.0Feature flagsFlag: 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)。

相关文章:

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

一、集群的安装部署 我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群&#xff0c;开始。 前提条件&#xff0c;docker安装了docker-compose。如果没安装的话&#xff0c;参考这里 docker-compose文件参考bitnami官网&#xff1a;https://github.com/bitnami/contai…...

(c语言)整形提升

#include<stdio.h> //整形提升 int main() { char a 5; //字符型的内存大小为8个比特位&#xff0c;故在进行加法之类的线性运算时需要整形提升 //00000000000000000000000000000101->5 因为字符型的内存大小不足&#xff0c;故在存放整形时需要裁切 …...

上传文件报错:The temporary upload location [/tmp/tomcat/xxx] is not valid

1.上传附加时报错找不到临时目录 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat/work/Tomcat/localhost/ROOT] is not valid 发生改报错原因为 (1)、SpringBoot项目启动后&#xff0c;系…...

直线模组的品牌有哪些?

中国工业制造业快速发展&#xff0c;工业自动化领域也进入了飞速发展的阶段&#xff0c;直线模组作为工业自动化领域不可缺少的机器人之一&#xff0c;有着重要的不可或缺的作用&#xff0c;在行业内做得好的直线模组品牌有哪些呢&#xff1f; 1、NSK&#xff1a;日本精工株式会…...

零基础学习ESP8266

文章目录 零基础学习ESP8266前言选择硬件如何学习专栏大纲基础部分提高部分 总结 零基础学习ESP8266 前言 最近在空余的时候有用乐鑫的模组&#xff0c;感觉很不错&#xff0c;也决定简单写写。 相信看这篇文章的同学&#xff0c;希望可以熟悉ESP8266这个硬件平台。当然我们…...

基于PYQT5的GUI开发系列教程【二】框架安装和基础环境配置

本文概述 PYQT5是一个基于python的可视化GUI开发框架&#xff0c;具有容易上手&#xff0c;界面美观&#xff0c;多平台部署等优点&#xff0c;作者将通过一系列教程&#xff0c;带领大家从零基础到入门~能够自主实现GUI开发。 作者介绍 作者本人是一名人工智能炼丹师&#xff…...

pg数据库操作,insert(sql)插入一条数据后获返回当前插入数据的id --chatGPT

gpt: 在 PostgreSQL 数据库中&#xff0c;可以使用 INSERT 语句插入一条数据&#xff0c;并通过 RETURNING 子句来返回插入数据的 ID。以下是一个示例 Go 代码来执行这个操作&#xff1a; go package main import ( "database/sql" "fmt" &…...

【数据结构-树】哈夫曼树

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...

HarmonyOS 4.0 实况窗上线!支付宝实现医疗场景智能提醒

本文转载自支付宝体验科技&#xff0c;作者是蚂蚁集团客户端工程师博欢&#xff0c;介绍了支付宝如何基于 HarmonyOS 4.0 实况窗实现医疗场景履约智能提醒。 1.话题背景 8 月 4 日&#xff0c;华为在 HDC&#xff08;华为 2023 开发者大会&#xff09;上推出了新版本操作系统…...

【响应式布局】

响应式布局 1 什么是响应式布局2 响应式布局的5种实现方案2.1 百分比布局2.2 媒体查询布局2.3 rem响应式布局2.4 vw / vh响应式布局2.5 flex弹性布局 1 什么是响应式布局 响应式布局就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互…...

Spring面试题23:Spring支持哪些事务管理类型?Spring框架的事务管理有哪些优点?你更倾向用哪种事务管理类型?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring支持哪些事务管理类型? Spring 支持以下几种事务管理类型: 编程式事务管理:通过在代码中显式地使用事务管理 API(如 TransactionTempla…...

Leetcode—— LCR 122. 路径加密

LCR 122. 路径加密 假定一段路径记作字符串 path&#xff0c;其中以 "." 作为分隔符。现需将路径加密&#xff0c;加密方法为将 path 中的分隔符替换为空格 " "&#xff0c;请返回加密后的字符串。 示例 1&#xff1a; 输入&#xff1a;path "a.ae…...

缓冲区溢出漏洞分析

一、实验目的 熟悉软件安全需求分析方法&#xff0c;掌握软件安全分析技术。 二、实验软硬件要求 1、操作系统&#xff1a;windows 7/8/10等 2、开发环境&#xff1a;VS 6.0&#xff08;C&#xff09;、OllyDbg 三、实验预习 《软件安全技术》教材第3章 四、实验内容&#…...

【高阶数据结构】红黑树(C++实现)

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C进阶 ⭐代码仓库&#xff1a;C进阶 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…...

算力百川汇蓝海,商海荡漾绘宏图

算力百川汇蓝海 01 新兴技术呼唤算力 崭新时代逐浪前&#xff0c;科技浪潮涌向天。 人工智能、数字孪生、元宇宙等新兴技术的迅速发展&#xff0c;引爆全球算力需求的规模式增长。尤其&#xff0c;以ChatGPT为代表的人工智能技术发展&#xff0c;引发了全球算力需求的进一步增长…...

ORACLE 内存结构之系统全局区(SGA)

每个 Oracle 数据库实例都会在内存中分配一个很大的内存结构&#xff0c; 称为系统全局区(System Global Area), 这是一个大型的共享内存结构,每个Oracle进程都会访问它。 在Linux/Unix操作系统上,SGA是一个物理实体&#xff0c;使用操作系统命令能“看到它”。 它被操作系…...

主要文档分享网站一览

136****0621的全部文档-第1页-原创力文档 目前能提供上传文档并付费的网站&#xff1a; 1、得利文库 www.deliwenku.com 先说我自已的吧&#xff01;见笑了 2、百度文库 wenku.baidu.com 这个算头部了、有流量倾斜、但资源多、用户现在上传的大部份为重复的&#xff0c;…...

CPU访问一个虚拟地址的整体流程

一、虚拟地址转换成物理地址 涉及到的部件&#xff1a; MMU&#xff1a;虚拟地址—MMU—>物理地址。MMU会控制整个流程&#xff08;查快表、查慢表等等&#xff09;TLB快表&#xff1a;组号&#xff08;若为组相联TLB&#xff09;、TLB标记、有效位、页框号页表&#xff08…...

UE5 虚幻引擎 如何使用构造脚本(Construction Script)? 构造脚本的奥秘!

目录 1 构造脚本&#xff08;Construction Script&#xff09;1.1 介绍1.2 案例1&#xff1a;利用样条组件程序化生成树木1.2 案例2&#xff1a;利用样条组件和样条网格体组件程序化生成道路 1 构造脚本&#xff08;Construction Script&#xff09; 1.1 介绍 问题&#xff1a…...

Mysql高级——数据库设计规范(2)

8. ER模型 ER 模型中有三个要素&#xff0c;分别是实体、属性和关系。 实体&#xff0c;可以看做是数据对象&#xff0c;往往对应于现实生活中的真实存在的个体。在 ER 模型中&#xff0c;用矩形来表示。实体分为两类&#xff0c;分别是强实体和弱实体。强实体是指不依赖于其…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...