RabbitMQ集群安装

news2024/11/22 14:51:19

RabbitMQ集群安装

1.前言

OS: CentOS Linux release 7.9.2009 (Core)

机器:

IPnodecpu内存存储
10.106.1.241max-rabbitmg-018 核16 G100 G
10.106.1.242max-rabbitmg-028 核16 G100 G
10.106.1.243max-rabbitmg-038 核16 G100 G

因为操作系统版本是 centos7,所以RabbitMQ安装版本,选的是最后一个支持RHEL7的版本。

在安装RabbitMQ之前,需要安装Erlang/OTP支持的版本。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的。

再确定要下载的RabbitMQ的版本号之后,访问网址选择Erlang版本查看匹配对应Erlang的版本号,并进行下载。

本次下载RabbitMQ版本为3.10.0-1对应的Erlang版本为23.3.4.11-1

RabbitMQ: 3.10.0-1

Erlang: 23.3.4.11-1

2.准备

注意,以下操作,分别在3台机器上执行

配置hosts:

cat << \EOF >> /etc/hosts
10.106.1.241 max-rabbitmq-01
10.106.1.242 max-rabbitmq-02
10.106.1.243 max-rabbitmq-03
EOF

查看hosts配置是否正确:

ping max-rabbitmq-01
ping max-rabbitmq-02
ping max-rabbitmq-03

关闭selinux:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
setenforce 0

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

安装存储库:

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | bash
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | bash

下载rpm安装包:

wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm?distro_version_id=205
wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.10.0-1.el7.noarch.rpm/download.rpm?distro_version_id=205

3.安装

注意,以下操作,分别在3台机器上执行

安装:

yum install -y erlang-23.3.4.11-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.10.0-1.el7.noarch.rpm

启动服务、并设置开机服务:

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

其它服务命令:

# 启动
systemctl start rabbitmq-server
# 查看状态
systemctl status rabbitmq-server
# 停止
systemctl stop rabbitmq-server stop

4.端口授权

RabbitMQ节点绑定到端口(开放服务器TCP套接字)以接受客户端和CLI工具连接。

其他进程和工具(如SELinux)可能会阻止RabbitMQ绑定端口。

当发生这种情况时,节点将无法启动。
CLI工具、客户端库和RabbitMQ节点也可以打开连接(客户端TCP套接字)。

防火墙可以阻止节点和CLI工具之间的通信。

为了确保以下端口可访问,请单独端口开启授权,请直接关闭防火墙。

这里推荐直接关闭防火墙

4369: epmd, RabbitMQ节点和CLI工具使用的对等体发现服务

5672, 5671:用于AMQP 0-9-1和1.0客户端,无论是否使用TLS

25672:用于节点间和CLI工具通信(Erlang分发服务器端口),动态范围分配(默认限制为单个端口,计算为AMQP端口+ 20000)。除非这些端口上的外部连接确实是必要的(例如集群使用联合或在子网外的机器上使用CLI工具),否则这些端口不应该公开。具体请参见组网指南。

35672-35682: CLI工具(Erlang分发客户端端口)用于与节点通信,按动态范围(服务器分发端口+ 10000 ~服务器分发端口+ 10010计算)分配。具体请参见组网指南。

15672: HTTP API客户端,管理UI和rabbitmqadmin(只有启用了管理插件)

61613,61614: STOMP客户端不带TLS或带TLS(仅当启用STOMP插件时)

1883、8883:MQTT客户端,如果启用了MQTT插件,则不使用TLS或使用TLS

15674: STOMP-over- websockets客户端(仅当Web STOMP插件启用时)

15675: MQTT-over- websockets客户端(仅当启用Web MQTT插件时)

15692: Prometheus metrics(仅当Prometheus插件启用时)

5.开启远程登录

注意,以下操作,分别在3台机器上执行

rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_mqtt

6.添加用户及权限

注意,以下操作,分别在3台机器上执行

添加RabbitMQ用户及权限:

rabbitmqctl add_user admin 你RabbitMQ的密码
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

执行rabbitmqctl add_user时,出现 Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more. 这段是提醒记得设置权限。

执行完创建用户及授权命令后,可以试下账号是否能登录:

http://10.106.1.241:15672

http://10.106.1.242:15672

http://10.106.1.243:15672

7.集群配置

在max-rabbitmq-02、max-rabbitmq-03节点执行停RabbitMQ服务的命令:

systemctl stop rabbitmq-server

后面的集群配置,为了确保计算机中erlang.cookie文件是一致的,执行以下脚本scp命令。

拷贝.erlang.cookie到max-rabbitmq-02、max-rabbitmq-03节点:

scp /var/lib/rabbitmq/.erlang.cookie root@max-rabbitmq-02:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@max-rabbitmq-03:/var/lib/rabbitmq/.erlang.cookie

重启max-rabbitmq-02、max-rabbitmq-03的RabbitMQ服务:

systemctl start rabbitmq-server

max-rabbitmq-02加入集群:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@max-rabbitmq-01
rabbitmqctl start_app
rabbitmqctl cluster_status

max-rabbitmq-03加入集群:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@max-rabbitmq-01
rabbitmqctl start_app
rabbitmqctl cluster_status

登录http://10.106.1.241:15672查看集群状态

正常情况如下图:
grafana-5-view.png

8.引用 Reference

Kubernetes 1.25.4版本安装
kubeasz安装kubernetes1.25.5
CentOS8搭建nfs服务
k8s一键安装redis单机版
k8s一键安装mysql8单机版
Docker制作springboot运行应用镜像
k8s部署springboot应用
zookeeper集群安装
Nginx日志切割
Elasticsearch单机版本安装
Elasticsearch集群安装
springboot集成prometheus+grafana
安装Docker及学习
RabbitMQ集群安装

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

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

相关文章

chatgpt赋能Python-python3_5_3怎么保存

Python 3.5.3 保存指南 如果你正在使用Python 3.5.3&#xff0c;你可能会发现你需要保存你的代码和文件。在这篇SEO文章中&#xff0c;我们将介绍如何在Python 3.5.3中保存你的代码和文件。 保存Python代码 当你编写Python代码时&#xff0c;你需要将它们保存在文件中。为了…

【原】nodejs全局安装和本地安装的区别

来微信支付有2年多了&#xff0c;从2年前的互联网模式转变为O2O模式&#xff0c;主要的场景是跟线下的商户去打交道&#xff0c;不像以往的互联网模式&#xff0c;有产品经理提需求&#xff0c;我们帮忙去解决问题。 转型后是这样的&#xff0c;团队成员更多需要去寻找业务的方…

c++网上学习资源

背景 在网上学习或者参考的C资源。 相对其他语言来说&#xff0c;C 算是难度比较高的了&#xff0c;这一点无法否认。但是如果能有一些好的网站&#xff0c;则会让 C 的学习事半功倍。 那就来介绍几个最常用的&#xff08;最好的&#xff09;吧&#xff0c;包含了参考手册、教…

html - 多媒体标签(video)、音频标签(audio)

video 语法&#xff1a; <video src"文件地址" controls"controls" </video> 常见的属性 属性 值 描 述 autoplay autoplay 视频就绪自动播放&#xff08;谷歌浏览器需要添加muted来解决自动放的问题 controls controls …

腾讯云轻量应用服务器怎么搭建网站?超详细建站流程

腾讯云轻量应用服务器怎么搭建网站&#xff1f;太简单了&#xff0c;轻量服务器选择宝塔Linux镜像&#xff0c;然后在宝塔面板上添加站点&#xff0c;以WordPress建站为例&#xff0c;腾讯云服务器网来详细说下腾讯云轻量应用服务器搭建网站全流程&#xff0c;包括轻量服务器配…

函数栈帧的创建与销毁(反汇编万字讲解)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 这里写目录标题 1. 前言&#x1f6…

AI为文档图像安全注入新力量

Hello大家好。我是Dream。 随着人工智能和大数据技术的快速发展&#xff0c;人们对于文档图像安全的关注度越来越高。尤其是在当下&#xff0c;AIGC取得了里程碑式的成绩&#xff0c;引发了市场广泛热烈的兴趣&#xff0c;扩散模型在内的关键技术取得突破&#xff0c;技术可用性…

链表的相关OJ题解析

目录 ⭐一、移除链表元素 ⭐二、反转链表 ⭐三、求链表中间节点 ⭐四、求链表倒数第k个节点 ⭐ 五、合并两个有序链表 ⭐六、链表的回文结构 ⭐ 七、相交链表 ⭐八、环形链表 ⭐九、链表入环的第一个节点 ⭐一、移除链表元素 链接&#xff1a; 移除链表元素 思路一…

浅尝css函数

文章目录 一、attr二、calc三、cubic-bezire四、conic-gradient五、counter六、hsl七、linear-gradient八、radial-gradient九、max/min十、var 一、attr 返回元素的属性值attr() 理论上能用于所有的 CSS 属性&#xff0c;但目前支持的仅有伪元素的 content 属性&#xff0c;其…

【网络工程师人手必备的常用网络命令合集,整理收藏!】

在计算机网络中经常要对网络进行管理&#xff0c;测试&#xff0c;这时就要用到网络命令。今天就为大家整理了一些网络工程师必备的一些常用网络命令合集&#xff0c;建议收藏后观看哦&#xff01; ping命令 ping是个使用频率极高的实用程序&#xff0c;主要用于确定网络的连…

Linux Shell if 使用参考

if 参考 与许多其他语言一样&#xff0c;PowerShell 提供了用于在脚本中有条件地执行代码的语句。 其中一个语句是 If 语句。 今天&#xff0c;我们将深入探讨 PowerShell 中最基本的命令之一。 案例使用解释&#xff0c;以下是部署virtualbox使用if参考解释 if 判断检查系统…

创新灵感来源于用户实践,TDengine 首次公开四项专利申请

好消息&#xff01;好消息&#xff01; 美国专利局来电 TDengine又有一个新专利证书下来啦&#xff01; 这一专利名为 “一种时序数据库表结构改变处理方法” 做技术创新我们真的是认真的~ 话不多说&#xff0c;给大家上图展示一下 我们都知道&#xff0c;在当下这样一个…

前端性能测试Lighthouse的使用

Lighthouse是一个开源项目&#xff0c;提高网页的质量&#xff0c;生成的测试报告会提供优化方案&#xff0c;以来提高网页的性能。重点就是关注优化建议 官方介绍Lighthouse的地址&#xff1a;https://developer.chrome.com/docs/lighthouse/ 一、使用方法 1、使用谷歌开发者…

Redis数据类型-Set

一. 概述 首先我们来看看Redis中的Set类型有什么特点。 与List相比&#xff0c;Set集合中的元素不允许重复&#xff0c;一个集合中最多可以对应2^32-1(4294967295)个元素。 Set除了可以执行增删改查的命令之外&#xff0c;还支持交集、并集、差集等的计算。 二. 基本命令 对我们…

当Python遇上异步编程:实现高效、快速的程序运行!

前言 同步/异步的概念&#xff1a; 同步是指完成事务的逻辑&#xff0c;先执行第一个事务&#xff0c;如果阻塞了&#xff0c;会一直等待&#xff0c;直到这个事务完成&#xff0c;再执行第二个事务&#xff0c;顺序执行 异步是和同步相对的&#xff0c;异步是指在处理调用这…

单片机的几种ota内存分区表介绍

前言 在做项目时&#xff0c;现在越来越多被要求单片机要支持升级功能。需求变化快&#xff0c;固件要不断支持新的功能&#xff0c;手动人工去烧固件越来越显得麻烦&#xff0c;已经操作成本高。 典型的方式是通过单片机外接的蓝牙、wifi等无线模块&#xff0c;或者通过单片…

如何创建UE5插件?

UE5 插件开发指南 前言1.0.打开插件窗口1.1.打开新建插件窗口1.2.填写新插件信息1.3.查看引擎自动生成的插件内容前言 首先,笔者默认读者已经知道如何安装UE5虚幻引擎了,并且也会编辑器的一些基本操作,那么这里省略了:如何注册Epic Games账号?如何安装UE5引擎?如何安装C++相…

基于SpringBoot的完成SSM整合项目开发

整合第三方技术 1. 整合JUnit问题导入1.1 Spring整合JUnit&#xff08;复习&#xff09;1.2 SpringBoot整合JUnit 2. 基于SpringBoot实现SSM整合问题导入2.1 Spring整合MyBatis&#xff08;复习&#xff09;2.2 SpringBoot整合MyBatis2.3 案例-SpringBoot实现ssm整合 1. 整合JU…

Maven多环境配置与使用、跳过测试的三种方法

文章目录 1 多环境开发步骤1:父工程配置多个环境,并指定默认激活环境步骤2:执行安装查看env_dep环境是否生效步骤3:切换默认环境为生产环境步骤4:执行安装并查看env_pro环境是否生效步骤5:命令行实现环境切换步骤6:执行安装并查看env_test环境是否生效 2 跳过测试方式1:IDEA工具…

机器学习之滤波入门

滤波的基本概念&#xff1a; 滤波是一种信号处理技术。在机器学习中&#xff0c;滤波通常指的是对输入信号进行加工&#xff0c;以消除噪声、平滑信号或突出特定频率范围的信号 简言之:加工输入,达到理想信号。 用生活的例子来解释: 假设你正在听一首音乐&#xff0c;但是在你的…