前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >通过流水线部署2节点RabbitMQ镜像集群(Ubuntu)

通过流水线部署2节点RabbitMQ镜像集群(Ubuntu)

原创
作者头像
airxiechao
发布于 2022-04-27 09:04:28
发布于 2022-04-27 09:04:28
29100
代码可运行
举报
运行总次数:0
代码可运行

RabbitMQ最基本的集群的通过 rabbitmqctl join_cluster 命令组建的,但是这种集群只会同步配置信息,不会同步队列里面的消息。要实现同步队列消息,需要在这个基础上,再设置 ha-mode 的 Policy,就可以了。

这里需要注意,因为RabbitMQ集群节点之间的通信是基于节点名的,所以在安装前,节点需要做以下准备工作:

  1. 每个节点设置好主机名,比如:node1、node2
  2. 每个节点设置好主机名的DNS解析

机器准备

两台腾讯云Ubuntu主机,10.0.16.12、10.0.16.16。

节点内网中,全部端口可相互访问。

节点的主机名设置为 node1、node2。

节点名可以通过DNS解析。

手动安装

【步骤1】在RabbitMQ官网,复制安装脚本,保存到文件 install-rabbitmq-cloudsmith.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/sh

sudo apt-get install curl gnupg apt-transport-https -y

## Team RabbitMQ's main signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
## Cloudsmith: modern Erlang repository
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
## Cloudsmith: RabbitMQ repository
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg > /dev/null

## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Provides modern Erlang/OTP releases
##
deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main

## Provides RabbitMQ
##
deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
EOF

## Update package indices
sudo apt-get update -y

## Install Erlang packages
sudo apt-get install -y erlang-base \
                        erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
                        erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
                        erlang-runtime-tools erlang-snmp erlang-ssl \
                        erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing

【步骤2】在节点1,安装、配置RabbitMQ

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod +x install-rabbitmq-cloudsmith.sh
./install-rabbitmq-cloudsmith.sh

# 设置管理员用户和密码
sudo rabbitmqctl add_user admin 123456
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

# 设置镜像策略
sudo rabbitmqctl set_policy ha-all '' '{"ha-mode":"all"}'

# 开启管理页面
sudo rabbitmq-plugins enable rabbitmq_management

【步骤3】在节点2,安装、配置RabbitMQ

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod +x install-rabbitmq-cloudsmith.sh
./install-rabbitmq-cloudsmith.sh

# 设置管理员用户和密码
sudo rabbitmqctl add_user admin 123456
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

# 开启管理页面
sudo rabbitmq-plugins enable rabbitmq_management

【步骤4】将节点1的 /var/lib/rabbitmq/.erlang.cookie 拷贝到节点2的 /var/lib/rabbitmq/.erlang.cookie。这样节点2才能和节点1通信。

【步骤5】节点2加入节点1的集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart rabbitmq-server

sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app

查看集群状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> sudo rabbitmqctl cluster_status
Cluster status of node rabbit@node2 ...
Basics

Cluster name: rabbit@localhost.localdomain

Disk Nodes

rabbit@node1
rabbit@node2

Running Nodes

rabbit@node1
rabbit@node2

Versions

rabbit@node1: RabbitMQ 3.9.15 on Erlang 24.3.3
rabbit@node2: RabbitMQ 3.9.15 on Erlang 24.3.3

Maintenance status

Node: rabbit@node1, status: not under maintenance
Node: rabbit@node2, status: not under maintenance

Alarms

(none)

Network Partitions

(none)

Listeners

Node: rabbit@node1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@node1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: rabbit@node1, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@node2, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@node2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@node2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

Feature flags

Flag: drop_unroutable_metric, state: disabled
Flag: empty_basic_get_metric, state: disabled
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

这样RabbitMQ镜像集群就安装好了!

流水线安装

通过 Y20持续部署系统,把以上步骤编排为流水线 部署RabbitMQ镜像集群,可以实现自动部署。

下面演示一下,更多细节请登录 y20.work

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微系列:6、在Centos系统中,搭建RabbitMQ集群
编辑/etc/yum.repos.d/rabbitmq_erlang.repo文件,配置yum源,如下
老张的哲学
2023/01/09
3000
微系列:6、在Centos系统中,搭建RabbitMQ集群
rabbitmq-安装
RabbitMQ 基于 Erlang,安装前,需要安装对应版本的 Erlang 官网 RabbitMQ 与 Erlang 版本对照表 https://www.rabbitmq.com/which-erlang.html CentOS 7 环境下安装
潇洒
2023/10/23
2640
RabbitMQ入门介绍
RabbitMQ是一个实现了AMQP协议的消息队列中间件,详见RabbitMQ官网 。
编程随笔
2022/04/29
5040
RabbitMQ入门介绍
RabbitMQ集群搭建
种基础构件,包括队列、交换器、绑定、虚拟主机等,他们组成了AMQP协议消息通信的基础,而这些构件以元数据的形式存在
嘻哈记
2020/11/24
6130
CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务
CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息
程序员鹏磊
2018/02/09
1.3K0
CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务
RabbitMQ & CentOS7
更多使用查看:https://www.zanglikun.com/495.html
收心
2022/08/24
5270
rabbitmq集群环境安装配置
一、主机清单 2台机器同时执行下面安装步骤 10.0.0.216 shiguang-rabbitmq-01 10.0.0.223 shiguang-rabbitmq-02 注意:请将上面内容加入2台机器 /etc/hosts (集群环境必须要加) 1、安装erlang和rabbitmq-server yum -y install erlang http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.12/rabbitmq-server-3.6.12-1
Linux运维技术之路
2022/06/07
2960
rabbitmq集群环境安装配置
RabbitMQ消息中间件
消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。
Cyylog
2020/08/19
1K0
自建 Bitwarden
闲置的腾讯云机子,由于没有备案域名啥都干不了,于是我打算废物利用一下,建一个 Bitwarden self host instance.
Clouder0
2022/11/01
2.7K1
自建 Bitwarden
CentOS7安装RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
用户3843914
2019/06/17
4.6K0
CentOS7安装RabbitMQ
rabbitmq在Linux下安装
tag(administrator,monitoring,policymaker,management)
编程那点事
2023/02/25
2.8K0
CentOs7搭建rabbitmq集群
环境:三台centos7.4.1708_x86_64 机器 192.168.1.186、192.168.1.187、192.168.1.188
我是李超人
2020/08/21
1.1K0
CentOs7搭建rabbitmq集群
RabbitMQ消息队列部署与配置基础
“每个理性的IT人士都置顶了吴柯的运维笔记” RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET
吴柯
2018/04/16
1.2K0
RabbitMQ消息队列部署与配置基础
RabbitMQ之集群搭建
  最开始我们介绍了如何安装及运行 RabbitMQ 服务,不过这些是单机版的,无法满足目前真实应用的 要求。如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况,该怎么办?单台 RabbitMQ 服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞 吐量呢?购买昂贵的服务器来增强单机 RabbitMQ 务的性能显得捉襟见肘,搭建一个 RabbitMQ 集群才是 解决实际问题的关键.
别团等shy哥发育
2023/02/25
4600
RabbitMQ之集群搭建
RabbitMQ集群和高可用方案
Cluster多机多节点部署:多机多节点是指在每台机器中部署一个RabbitMQ服务节点,进而由多个机器组成一个RabbitMQ集群
CodingDiray
2020/05/21
10.7K1
RabbitMQ Network Partitions 处理策略[通俗易懂]
欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。
全栈程序员站长
2022/09/13
8730
通过流水线部署3节点Redis哨兵集群(Ubuntu)
首先,要有一个主备集群。假设有3台电脑分别是MASTER、SLAVE1、SLAVE2。分别在这3台电脑上安装好Redis,并在SLAVE1、SLAVE2上设置为从MASTER同步(replicaof ***),那么它们就组成了主备集群,但是如果主节点出现故障了,从节点并不能提升为主节点,依然不能写入。为了解决这个问题,就要用到哨兵了。
airxiechao
2022/04/26
4480
RabbitMQ + Haproxy 实现高可用镜像集群
1.准备阶段 准备三台服务器 案例使用三台腾讯云服务器 43.138.xxx.xxx node1 82.157.xxx.xxx node2 39.105.xxx.xxx node3 结构图 2.安装阶段 修改节点名: 查看三台服务器的主机名称,并分别修改主机名为 node1/2/3 vim /etc/hostname 修改主机名称 修改HOST: 注意:使用外网服务器时需要注意IP地址的填写 在三台服务器分别执行当前命令 vim /etc/hosts 注意:如果是三台
Reset
2022/12/27
5180
RabbitMQ + Haproxy 实现高可用镜像集群
centos8安装rabbitmq_rabbitmq镜像集群
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/01
3410
centos8安装rabbitmq_rabbitmq镜像集群
RabbitMQ 集群
​ 如果RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障情况。单台RabbitMQ服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞吐量呢?购买昂贵的服务器来增强单机 RabbitMQ 务的性能显得捉襟见肘,搭建一个 RabbitMQ 集群才是解决实际问题的关键 。
OY
2022/03/20
3410
RabbitMQ 集群
相关推荐
微系列:6、在Centos系统中,搭建RabbitMQ集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验