heal force怎么看centos9 stream 下 rabbitmq高可用集群搭建及使用_centos stream 9

新闻资讯2026-04-20 23:44:18

#安装时会默认安装erlang相关依赖包。
#加入系统自动启动并立即运行rabbit
systemctl enable rabbitmq-server.service --now


## 2. 配置hosts文件


在所有节点上编辑hosts文件,将各节点的IP地址和主机名映射到一起。这样可以通过主机名进行通信,而不是依赖IP地址。


这个就不在讲了,直接编辑 /etc/hosts这个文件即可


个人主机内容参考如下:



127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

110.110.10.5 host1
110.110.10.6 host2
110.110.10.7 host3


## 3. 配置rabbit集群


一般情况下一个节点的rabbit也差不多够用了,但为了稳定性使用高可用集群还是有必要的,配置集群可以直接编辑每个节点上的RabbitMQ配置文件,可以在/etc/rabbitmq/rabbitmq.conf中修改。常见的配置项:  
 # 节点名称  
 node_name = rabbit@node1


# 集群节点列表  
 cluster_nodes = {['rabbit@node1', 'rabbit@node2', 'rabbit@node3'], disc}


# Cookie值,用于节点间通信  
 erlang_cookie = abcde12345fghij


还有自定义rabbit的ip,各类服务端口,还有ssl等高级配置在这里不说了。


注意,这些配置项必须在所有节点上保持一致。


### 命令方式配置集群


**默认情况下rabbit会直接获取hostname作为节点名,所以不用去配置文件中修改,这里主要讲使用命令直接配置和启动rabbit集群。**



先配置管理节点,再将管理节点cookie复制到其他节点

for i in {host1,host2,host3};do ssh $i systemctl stop rabbitmq-server;done
for i in {host1,host2,host3};do scp /var/lib/rabbitmq/.erlang.cookie $i:/var/lib/rabbitmq/.erlang.cookie;done
for i in {host1,host2,host3};do ssh $i chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie;done
for i in {host1,host2,host3};do ssh $i chmod 400 /var/lib/rabbitmq/.erlang.cookie;done
for i in {host1,host2,host3};do ssh $i systemctl start rabbitmq-server;done

###节点加入集群,从拟定的主节点以外的其他节点操作,新加入节点操作也一样。;
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@host1
rabbitmqctl start_app

rabbitmqctl cluster_status

systemctl stop rabbitmq-server
scp host1:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
systemctl start rabbitmq-server
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@host1
rabbitmqctl start_app


### 读写测试



写入和读取测试:

python

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(‘localhost’))
channel = connection.channel()

queue_name = ‘test_queue’

channel.queue_declare(queue=queue_name)
channel.basic_publish(exchange=‘’,
routing_key=queue_name,
body=‘Hello World!’)
print(" [x] Sent ‘Hello World!’")

method_frame, header_frame, body = channel.basic_get(queue=queue_name, auto_ack=True)
if method_frame:
print(" [x] Received %r" % body)
else:
print(‘No message returned’)

connection.close()


### 在Node.js中使用RabbitMQ



在Node.js中使用RabbitMQ需要先安装amqplib库,可以通过npm进行安装:
npm install amqplib

##以下是使用RabbitMQ的基本步骤:
##建立与RabbitMQ服务器的连接
const amqp = require(‘amqplib’);
amqp.connect(‘amqp://localhost’).then(function(conn) {
//执行后续操作
});

###创建通道(channel)
conn.createChannel().then(function(ch) {
//执行后续操作
});

#发送消息
const queueName = “hello”;
ch.assertQueue(queueName, { durable: false });
ch.sendToQueue(queueName, new Buffer(‘Hello World!’));

const queueName = “hello”;
ch.assertQueue(queueName, { durable: false });
ch.consume(queueName, function(msg) {
console.log(“Received message: %s”, msg.content.toString());
}, { noAck: true });

#######完整示例代码:

const amqp = require(‘amqplib’);

amqp.connect(‘amqp://localhost’).then(function(conn) {
conn.createChannel().then(function(ch) {
const queueName = “hello”;
ch.assertQueue(queueName, { durable: false });
ch.sendToQueue(queueName, new Buffer(‘Hello World!’));

ch.assertQueue(queueName, { durable: false });
ch.consume(queueName, function(msg) {
  console.log("Received message: %s", msg.content.toString());
}, { noAck: true });

});
}).catch(function(err) {
console.log(‘Error:’, err);
});


## 


## 4. 常用管理命令



#添加新用户
sudo rabbitmqctl add_user username password

#删除用户
sudo rabbitmqctl delete_user username

#分配用户权限
sudo rabbitmqctl set_permissions -p / virtual-hostname ‘username’ ‘.’ '.’ ‘.*’

#查看用户列表
sudo rabbitmqctl list_users

#查看队列列表
sudo rabbitmqctl list_queues

#查看交换机列表
sudo rabbitmqctl list_exchanges

#查看绑定列表
sudo rabbitmqctl list_bindings

#查看 vhost 列表
sudo rabbitmqctl list_vhosts

#查看某个 vhost 的权限控制列表
sudo rabbitmqctl list_permissions -p virtual-hostname

#查看 RabbitMQ 服务器信息
sudo rabbitmqctl status


## 5. 设置集群policy设置



##语句格式
rabbitmqctl set_policy [-p ]
rabbitmqctl clear_policy [-p ]
rabbitmqctl list_policies [-p ]

rabbitmqctl set_policy ha-all ‘^(?!amq.).*’ ‘{“ha-mode”: “all”}’;

rabbitmqctl set_policy max-length-1000 “^my-queue$” ‘{“max-length”:1000}’ --apply-to queues


## 6. 启用web面板插件



rabbitmq-plugins enable rabbitmq_management

##在本服务器或者同网段其他主机打开浏览器即可访问rabbitmq集群状态和管理页面


![](https://img-blog.csdnimg.cn/e393bc34c237446ebc6c6687347a4d9e.png)


使用前面命令添加用户并设置为管理员即可登陆web界面。 


![](https://img-blog.csdnimg.cn/73962817eaad4832aac7c4aa9d3c706c.png)


## 7. rabbitmq配置文件参考



###一般情况下不用在这里修改配置文件,但自定义参数的时候还是很有用的。
cat /etc/rabbitmq/rabbitmq.conf

####这下面的5672,5671如果已经被占用时或者为了安全考虑可修改为其他端口,在服务应用时也需要调整成新的端口

###这里设置集群,所有节点必须保持一致,当然也可以按照前面命令的方式进行设置

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

heal force怎么看centos9 stream 下 rabbitmq高可用集群搭建及使用_centos stream 9_https://www.jmylbn.com_新闻资讯_第1张

给大家整理的电子书资料:

heal force怎么看centos9 stream 下 rabbitmq高可用集群搭建及使用_centos stream 9_https://www.jmylbn.com_新闻资讯_第2张

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
10

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

[外链图片转存中…(img-9Cdfvy2U-1714543526215)]

给大家整理的电子书资料:

[外链图片转存中…(img-cYff8W3j-1714543526216)]

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!