gpt4 book ai didi

linux - 如何让RabbitMQ更可靠?是否可以让它定期备份其数据(消息)?

转载 作者:太空狗 更新时间:2023-10-29 12:13:00 24 4
gpt4 key购买 nike

我想确保在 RabbitMQ 崩溃的情况下不会丢失任何内容。是否有可能以某种方式让 RabbitMQ 转储或备份它在磁盘上的所有队列?

我还听说,一旦它收到消息,即使它崩溃了,当它启动时,消息仍然可用。

那么您有什么建议可以使流程更可靠?

最佳答案

在 RabbitMQ 中,这可以通过使用队列和消息的持久性来实现。队列持久性意味着其配置将存储在磁盘上。并且当 RabbitMQ 在崩溃后恢复时,队列将被恢复。可以这样做:

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

您寻求的是与消息持久性更密切相关的内容。使用设置为 2 的 delivery_mode 标志发布所有消息。默认值为 1,这使得消息仅驻留在 RAM 中。参见 this用于 Python 中的代码示例。摘录如下。

channel.basic_publish(exchange='',
routing_key='task_queue',
body=message,
properties=pika.BasicProperties(
delivery_mode = 2, # make message persistent
))

请注意,启用消息持久性会对性能产生影响。当设置为 2 时,RabbitMQ broker 必须做额外的工作将消息写入磁盘和从磁盘读取消息。

关于linux - 如何让RabbitMQ更可靠?是否可以让它定期备份其数据(消息)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35448171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com