首页主机资讯RabbitMQ消息持久化CentOS实现

RabbitMQ消息持久化CentOS实现

时间2025-11-26 17:43:03发布访客分类主机资讯浏览1293
导读:在CentOS上实现RabbitMQ消息持久化,需要遵循以下步骤: 1. 安装RabbitMQ 首先,确保你的CentOS系统已经安装了Erlang,因为RabbitMQ是用Erlang编写的。然后,你可以通过以下命令安装RabbitMQ:...

在CentOS上实现RabbitMQ消息持久化,需要遵循以下步骤:

1. 安装RabbitMQ

首先,确保你的CentOS系统已经安装了Erlang,因为RabbitMQ是用Erlang编写的。然后,你可以通过以下命令安装RabbitMQ:

# 添加EPEL仓库
sudo yum install epel-release

# 安装RabbitMQ服务器
sudo yum install rabbitmq-server

# 启动RabbitMQ服务
sudo systemctl start rabbitmq-server

# 设置RabbitMQ开机自启
sudo systemctl enable rabbitmq-server

2. 配置RabbitMQ

编辑RabbitMQ的配置文件 /etc/rabbitmq/rabbitmq.conf 或者在 /etc/rabbitmq/rabbitmq-env.conf 中添加以下配置来启用消息持久化:

# 启用消息持久化
queue_master_locator = min-masters

3. 创建持久化队列和交换机

在RabbitMQ中,你可以通过设置队列和交换机的参数来实现消息的持久化。

创建持久化队列

使用RabbitMQ的管理界面或者命令行工具 rabbitmqadmin 来创建持久化队列:

rabbitmqadmin declare queue name=my_durable_queue durable=true

创建持久化交换机

同样地,创建一个持久化交换机:

rabbitmqadmin declare exchange name=my_durable_exchange type=direct durable=true

4. 绑定队列到交换机

将持久化队列绑定到持久化交换机上:

rabbitmqadmin declare binding source=my_durable_exchange destination=my_durable_queue routing_key=my_routing_key

5. 发送持久化消息

当你发送消息时,需要将消息标记为持久化的。这可以通过设置消息的 delivery_mode 属性为2来实现:

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='my_durable_queue', durable=True)

channel.basic_publish(exchange='my_durable_exchange',
                      routing_key='my_routing_key',
                      body='Hello World!',
                      properties=pika.BasicProperties(
                         delivery_mode=2,  # 使消息持久化
                      ))

print(" [x] Sent 'Hello World!'")
connection.close()

6. 消费持久化消息

消费者在消费消息时,不需要做特别的设置,只要队列是持久化的,消息就会一直存在直到被消费者消费或者被RabbitMQ删除。

import pika

def callback(ch, method, properties, body):
    print(f" [x] Received {
body}
    ")

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='my_durable_queue', durable=True)

channel.basic_consume(queue='my_durable_queue',
                      on_message_callback=callback,
                      auto_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

7. 监控和管理

你可以使用RabbitMQ的管理界面来监控队列的状态和消息的数量。管理界面的默认地址是 http://your_server_ip:15672/,默认用户名和密码都是 guest

通过以上步骤,你可以在CentOS上实现RabbitMQ的消息持久化。确保在生产环境中使用适当的权限和配置来保护你的RabbitMQ服务器。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: RabbitMQ消息持久化CentOS实现
本文地址: https://pptw.com/jishu/756893.html
CentOS中RabbitMQ故障排查方法 CentOS环境下RabbitMQ如何监控

游客 回复需填写必要信息