客户端重新连接后,保留并重新发送消息,直到手动重置/删除主题

时间:2019-03-28 22:15:25

标签: rabbitmq rocketmq durable-subscription

我在项目中,需要替换专有消息代理,并且倾向于使用RabbitMQ。

虽然可以涵盖大多数用例,但有一种情况我不确定如何处理:

专有代理具有一种模式,可以将邮件传递给有关该主题的每个订户,但之后不会将其删除。如果订户重新连接和/或新订户将启动,则应该再次获得 all 消息。仅当手动触发主题的重置/刷新时,才应删除消息。

用例是一些in-memory-db,它是在系统启动时从每晚创建的文件中填充的。消息包含自创建文件以来发生的任何事情的变化量。如果某个模块发生故障并重新启动(或添加了新实例),它将读取文件以及所有消息以重新创建最新状态。

在创建新文件填充内存数据库时,将重置主题,并丢弃所有消息,因为文件中已经包含所有内容。

有什么想法如何设置队列/主题以实现相似的目的?我唯一能想到的骇人听闻的方法就是以某种方式对消息的确认进行播放,例如根本不承认交货等等。任何更清洁的方式吗?

我也在考虑其他经纪人。所以它也可以是RocketMQ,或者做什么工作...

0 个答案:

没有答案