我们有一个生产者服务,它正在向主题发布消息,并且我们有3个消费者实例从主题中读取该消息。仅当所有使用者处理并在另一个答复队列中回复成功消息时,生产者才需要做进一步的处理(更新数据库)。即使使用者服务之一由于某些异常或答复队列中的任何失败消息而失败,生产者也不应为该发布请求更新数据库。
对于下一个请求(主题中发布了新消息),如果所有使用者都在答复队列中进行处理和答复,则生产者应更新数据库。我们如何使用骆驼和activemq实现这一目标。是否有任何EIP模式可以实现这一目标?
任何
答案 0 :(得分:0)
是的,生产者可以只使用回复队列上的aggregator
企业集成模式来确保所有3个使用者都处理了上一条消息。
文档:Apache Camel aggregator2组件。
您将需要一个唯一的密钥并使用适当的聚合策略。