Rabbitmq 客户端队列持久性

Rabbitmq 客户端队列持久性,rabbitmq,activemq,amqp,Rabbitmq,Activemq,Amqp,Amqp代理具有允许保证交付的持久性设置,但这仅在消息实际到达代理时有效。如果出现网络故障,随后的客户端崩溃/重新启动消息可能会丢失。在rabbitmq或activemq或其他消息传递框架中,客户端(生产者)是否有某种方式将消息持久化到磁盘,以便在客户端崩溃或重新启动时,不会丢失任何未发送的消息 我曾看到有人在当地经营一家经纪公司来回避这个问题。这似乎是一项不必要的工作,特别是如果您对客户机的部署没有太多控制权的话 实际上,你已经很好地回答了自己的问题。许多寻找客户端持久性的人转向嵌入式代理,因

Amqp代理具有允许保证交付的持久性设置,但这仅在消息实际到达代理时有效。如果出现网络故障,随后的客户端崩溃/重新启动消息可能会丢失。在rabbitmq或activemq或其他消息传递框架中,客户端(生产者)是否有某种方式将消息持久化到磁盘,以便在客户端崩溃或重新启动时,不会丢失任何未发送的消息


我曾看到有人在当地经营一家经纪公司来回避这个问题。这似乎是一项不必要的工作,特别是如果您对客户机的部署没有太多控制权的话

实际上,你已经很好地回答了自己的问题。许多寻找客户端持久性的人转向嵌入式代理,因为它实际上是一个非常好的解决方案。拥有一个可以存储和转发的本地代理比每个客户机中的内置持久性层提供了更大的灵活性,所有本地客户机都可以共享一个代理实例,当您发现存储的本地消息由于不可预见的远程停机而累积时,可以根据需要移动存储

当然,有些客户机实现确实提供存储,但找到一个存储取决于您选择的代理/协议,当然,如果客户机碰巧不是来自开源实现,您是否愿意花钱购买支持或许可。我认为MQTT Paho客户机和其他一些客户机一样具有本地存储选项