1
5
您的问题不涉及发布-订阅,而涉及基本的消息处理。最基本的问题是您是否可以保证一个操作只执行一次。简而言之,您可能希望使用直接交换,以便消息进入一个队列并由一个(可能是多个)使用者处理。
出身背景 最好的做法是将消息处理作为 此外,您应该知道,不可能保证“一次准确”交付。从数学上讲,这是无法保证的。相反,您可以有两件事中的一件(相互排斥):
从RabbitMQ文档中:
设计含义 鉴于上述情况,您的设计依赖于“至少一次”交付是很重要的。对于删除操作,这涉及将该操作的定义重新写入断言而不是过程(例如“删除”) “变成”确保 |
2
1
我想您应该为每个服务都有一个单独的队列,该服务实例应该得到关于数据库记录删除的通知。交换器在所有队列中放置消息的副本。服务实例竞争对专用队列的访问(只有一个实例获得消息)。 |
pixel · C#根据订阅者的要求通知订阅者的事件 6 年前 |
vach · ZeroMQ可以订阅,但如何排除特定筛选器? 6 年前 |
Antoine · 在ROS-Python中使用来自多个主题的数据 6 年前 |
DSA · NATS请求-回复-它是如何工作的? 7 年前 |