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

news2024/11/24 6:59:24

一、集群的安装部署

我们还是利用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/1043436.html

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

相关文章

JetBrains 产品安装插件(plugins)的两种方式

安装分为在线、离线两种方式&#xff1a; 在线方式&#xff1a; File > Settings > Plugins 搜索插件 Install 即可 离线方式&#xff1a; 官网&#xff1a;https://plugins.jetbrains.com/ 搜索到插件后&#xff0c;点击 "Get"&#xff0c;选择自己安装的…

obsidian加git备份,同时忽略掉自己不想同步的文件夹

最近想用这个语雀进行知识库的分享&#xff0c;但是这个语雀的会员费太贵了&#xff0c;思来想去还是用 git 比较好&#xff0c;因为这个知识库的内容都是自己的笔记&#xff0c;为了能够访问的更加方便我选择了这个 gitte&#xff0c;而不是 github 我的知识库链接 knowledge …

报错 - 找不到模块“@/...“或其相应的类型声明

项目是vue3jsvite&#xff0c;在 vite.config.js 和 jsconfig.json 的配置无误的情况下&#xff0c;报错找不到模块。 解决方法&#xff1a;卸载重新安装 Error Lens 插件 报错没有啦。可能是插件内部错误&#xff1f;

opencv之利用gpu进行编程

很多朋友工作中会遇到需要使用gpu的例子&#xff0c;gpu就是显卡&#xff0c;大部分对gpu有个模糊的概念&#xff0c;即图像渲染会使用到他&#xff0c;但是它是如何生效的&#xff0c;又说不清楚。本篇文章主要介绍opencv下如何使用gpu进行编程。 基本介绍 opencv下存在gpu可…

软件测试:全链路追踪工具 Zipkin导入、安装(Windows版本)

1.0全链路追踪技术出现的原因 公司内部一个功能的实现&#xff0c;底层可能调用多个应用系统 在调用这个功能的同时&#xff0c;可能会出现多种情况&#xff0c;比如访问较慢&#xff0c;出现错误&#xff0c;可能需要进行定位 所以&#xff0c;我们需要快速定位服务错误点 大…

外汇天眼:SEC起诉“现金流之王”播客主持人涉嫌1100万美元庞氏骗局

美国证券交易委员会&#xff08;SEC&#xff09;今天指控了“现金流之王”播客主持人马修莫蒂尔&#xff0c;涉嫌通过一个庞氏骗局欺骗超过50名投资者&#xff0c;非法筹集了约1100万美元&#xff0c;涉及的票据据称由住宅物业支持。 根据SEC的投诉&#xff0c;俄亥俄州北奥尔姆…

openstack中通过主机mac地址查询主机id

问题&#xff1a; 客户给vm配置了子接口&#xff0c;并且接口上的ip可以ping通&#xff0c;客户需要从众多的主机中找到这台主机 解决办法 一 、通过子接口开放的端口让客户自行匹配自己业务进行查找 此处让客户自行查找即可 二 、通过数据库查找 注意&#xff1a;由于子接…

力扣:110. 平衡二叉树(Python3)

题目&#xff1a; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff…

课题学习(二)----倾角和方位角的动态测量方法(基于磁场的测量系统)

磁性测量工具安装在非磁性钻铤内&#xff0c;如图1&#xff0c;以避免磁性随钻测量工具测量时受到外部干扰。 测量系统采用三轴加速度计和三轴磁通门&#xff0c;并采用冗余设计&#xff0c;由于井下振动剧烈&#xff0c;陀螺仪的可靠性将大大降低。为了保证整个钻井过程中系统…

XC2028A CC/CV降压车充芯片,12V降5V,24V降5V,2.5A带限流功能的降压IC

XC2028A具有最佳输入电压、降压转换器&#xff0c;可在CV&#xff08;恒定输出电压&#xff09;模式或CC&#xff08;恒定输出电流&#xff09;模式下工作&#xff0c;OCP电流值由电流感应电阻设置。最大输入电压高达32V&#xff0c;MOSFET&#xff0c;什么是建立在50mΩ高侧和…

搭建BP神经网络

1.数据集下载 2.C语言代码 BP.h #ifndef BP_H_INCLUDED #define BP_H_INCLUDED const int INPUT_LAYER 784; //输入层维度 const int HIDDEN_LAYER 40; //隐含层维度 const int OUTPUT_LAYER 10; //输出层维度 const double LEARN_RATE 0.3; //学习率 const int TRAIN_TIM…

Sringcloud:一、微服务介绍+常用技术框架和技术对比+服务拆分demo

微服务介绍 单体架构 简介 将业务所有功能集中在一个项目中开发&#xff0c;打成一个包部署优点 架构简单部署成本低 缺点 耦合度高&#xff0c;不利于后续更新迭代 分布式架构 简介 每个业务模块作为一个独立项目开发&#xff0c;称为一个服务&#xff0c;但通常仍共用一…

Spark集成ClickHouse(笔记)

目录 前言&#xff1a; 一.配置环境 1.安装clickhouse驱动 2.配置clickhouse环境 二.spark 集成clickhouse 直接上代码&#xff0c;里面有一些注释哦&#xff01; 前言&#xff1a; 在大数据处理和分析领域&#xff0c;Spark 是一个非常强大且广泛使用的开源分布式计算框架…

从想象力到生产力,VR全景技术让亚运会走进你的身边

杭州亚运会开幕&#xff0c;各方面氛围感直接拉满&#xff0c;既是一场体育盛会&#xff0c;也是一场科技盛宴&#xff0c;VR技术也融入了亚运会的方方面面。在5G技术的加持下&#xff0c;VR全景技术可以将亚运会各项赛事提升到一个很高的水平&#xff0c;观众即使不在现场&…

【医疗图像处理软件】重要功能集合

很高兴在雪易的CSDN遇见你 &#xff0c;给你糖糖 欢迎大家加入雪易社区-CSDN社区云 一起挑战150岁生命线&#xff01; 前言之前&#xff1a;从事医疗器械行业使我们更加关注自己的健康&#xff0c;每天看着髋膝关节置换的手术视频&#xff0c;我们会更加爱护自己的膝盖。同…

给你两个集合,要求{A} + {B}

先看题&#xff1a; 看完题后你会觉得&#xff1a;哇&#xff0c;好简单&#xff0c;STL一下就出来啦。 #include <iostream> #include <set>using namespace std;int main() {int n, m;while (cin >> n >> m) {set<int> set_a;for (int i 0;…

第二证券:造谣?判了!有人少花四五万!美元突破近10个月高位

当地时间9月25日&#xff08;周一&#xff09;&#xff0c;美国三大股指停步四连跌。纳斯达克我国金龙指数跌1.1%&#xff0c;抱负轿车跌近10%。蔚来跌幅明显收窄&#xff0c;盘终跌超2%。美元指数一度升破106关口&#xff0c;刷新上一年11月底以来的10个月最高&#xff0c;此前…

Qt扫盲-QSqlQueryModel理论总结

QSqlQueryModel理论总结 一、概述二、使用1. 与 view 视图 绑定2. 分离视图&#xff0c;只存数据 一、概述 QSqlQueryModel是用于执行SQL语句和遍历结果集的高级接口。它构建在较低级的 QSqlQuery之上&#xff0c;可用于向QTableView 等视图类提供数据&#xff0c;也是使用了Q…

中国大模型的路,是不是走歪了?

大数据产业创新服务媒体 ——聚焦数据 改变商业 在这波全球大模型的浪潮中&#xff0c;中国与美国无疑成为了领军者。但中美在大模型的发展策略上却出现了显著的分歧。美国&#xff0c;以OpenAI为代表&#xff0c;持续致力于通用型大模型的研发。与此相反&#xff0c;中国则将…

著名数字音频工作站FL Studio 21.0.3.3517中文破解安装图文激活教程

在一个技术继续塑造我们日常生活的世界里&#xff0c;创造力找到了表达自己的新渠道。FL Studio 21成为一个强大的工具&#xff0c;使个人能够创作自己的音乐杰作。一个人需要广泛的乐器知识或一个成熟的工作室来创作交响乐的日子已经一去不复返了。有了FL Studio 21&#xff0…