【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 9月 24 21:26 .
dr-xr-x---. 6 root root 254 9月 24 21:23 ..
-rw-r--r--. 1 root root 1017 9月 24 21:26 docker-compose.yml
查看文件,建好了
[root@localhost mycompose]# ls -al
总用量 4
drwxr-xr-x. 2 root root 32 9月 24 21:26 .
dr-xr-x---. 6 root root 254 9月 24 21:23 ..
-rw-r--r--. 1 root root 1017 9月 24 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分钟安装一个集群,开始。 前提条件,docker安装了docker-compose。如果没安装的话,参考这里 docker-compose文件参考bitnami官网:https://github.com/bitnami/contai…...
(c语言)整形提升
#include<stdio.h> //整形提升 int main() { char a 5; //字符型的内存大小为8个比特位,故在进行加法之类的线性运算时需要整形提升 //00000000000000000000000000000101->5 因为字符型的内存大小不足,故在存放整形时需要裁切 …...
上传文件报错: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项目启动后,系…...
直线模组的品牌有哪些?
中国工业制造业快速发展,工业自动化领域也进入了飞速发展的阶段,直线模组作为工业自动化领域不可缺少的机器人之一,有着重要的不可或缺的作用,在行业内做得好的直线模组品牌有哪些呢? 1、NSK:日本精工株式会…...
零基础学习ESP8266
文章目录 零基础学习ESP8266前言选择硬件如何学习专栏大纲基础部分提高部分 总结 零基础学习ESP8266 前言 最近在空余的时候有用乐鑫的模组,感觉很不错,也决定简单写写。 相信看这篇文章的同学,希望可以熟悉ESP8266这个硬件平台。当然我们…...
基于PYQT5的GUI开发系列教程【二】框架安装和基础环境配置
本文概述 PYQT5是一个基于python的可视化GUI开发框架,具有容易上手,界面美观,多平台部署等优点,作者将通过一系列教程,带领大家从零基础到入门~能够自主实现GUI开发。 作者介绍 作者本人是一名人工智能炼丹师ÿ…...
pg数据库操作,insert(sql)插入一条数据后获返回当前插入数据的id --chatGPT
gpt: 在 PostgreSQL 数据库中,可以使用 INSERT 语句插入一条数据,并通过 RETURNING 子句来返回插入数据的 ID。以下是一个示例 Go 代码来执行这个操作: go package main import ( "database/sql" "fmt" &…...
【数据结构-树】哈夫曼树
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
HarmonyOS 4.0 实况窗上线!支付宝实现医疗场景智能提醒
本文转载自支付宝体验科技,作者是蚂蚁集团客户端工程师博欢,介绍了支付宝如何基于 HarmonyOS 4.0 实况窗实现医疗场景履约智能提醒。 1.话题背景 8 月 4 日,华为在 HDC(华为 2023 开发者大会)上推出了新版本操作系统…...
【响应式布局】
响应式布局 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,其中以 "." 作为分隔符。现需将路径加密,加密方法为将 path 中的分隔符替换为空格 " ",请返回加密后的字符串。 示例 1: 输入:path "a.ae…...
缓冲区溢出漏洞分析
一、实验目的 熟悉软件安全需求分析方法,掌握软件安全分析技术。 二、实验软硬件要求 1、操作系统:windows 7/8/10等 2、开发环境:VS 6.0(C)、OllyDbg 三、实验预习 《软件安全技术》教材第3章 四、实验内容&#…...
【高阶数据结构】红黑树(C++实现)
⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏留言 ⭐系列专栏:C进阶 ⭐代码仓库:C进阶 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们的支持是我…...
算力百川汇蓝海,商海荡漾绘宏图
算力百川汇蓝海 01 新兴技术呼唤算力 崭新时代逐浪前,科技浪潮涌向天。 人工智能、数字孪生、元宇宙等新兴技术的迅速发展,引爆全球算力需求的规模式增长。尤其,以ChatGPT为代表的人工智能技术发展,引发了全球算力需求的进一步增长…...
ORACLE 内存结构之系统全局区(SGA)
每个 Oracle 数据库实例都会在内存中分配一个很大的内存结构, 称为系统全局区(System Global Area), 这是一个大型的共享内存结构,每个Oracle进程都会访问它。 在Linux/Unix操作系统上,SGA是一个物理实体,使用操作系统命令能“看到它”。 它被操作系…...
主要文档分享网站一览
136****0621的全部文档-第1页-原创力文档 目前能提供上传文档并付费的网站: 1、得利文库 www.deliwenku.com 先说我自已的吧!见笑了 2、百度文库 wenku.baidu.com 这个算头部了、有流量倾斜、但资源多、用户现在上传的大部份为重复的,…...
CPU访问一个虚拟地址的整体流程
一、虚拟地址转换成物理地址 涉及到的部件: MMU:虚拟地址—MMU—>物理地址。MMU会控制整个流程(查快表、查慢表等等)TLB快表:组号(若为组相联TLB)、TLB标记、有效位、页框号页表(…...
UE5 虚幻引擎 如何使用构造脚本(Construction Script)? 构造脚本的奥秘!
目录 1 构造脚本(Construction Script)1.1 介绍1.2 案例1:利用样条组件程序化生成树木1.2 案例2:利用样条组件和样条网格体组件程序化生成道路 1 构造脚本(Construction Script) 1.1 介绍 问题:…...
Mysql高级——数据库设计规范(2)
8. ER模型 ER 模型中有三个要素,分别是实体、属性和关系。 实体,可以看做是数据对象,往往对应于现实生活中的真实存在的个体。在 ER 模型中,用矩形来表示。实体分为两类,分别是强实体和弱实体。强实体是指不依赖于其…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
