客户端队列持久性



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

我见过人们在本地经营经纪人以解决这个问题。这似乎是不必要的工作量,特别是如果您无法控制客户端的部署。

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

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

最新更新