首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是在apache camel(activemq)中在消息处理之间添加延迟的一种方法。

是在apache camel(activemq)中在消息处理之间添加延迟的一种方法。
EN

Stack Overflow用户
提问于 2021-07-06 13:57:22
回答 1查看 236关注 0票数 0
  1. Application1:源系统每秒向apache (ActiveMQ)发送10个请求。
  2. Application2: Apache,它接收来自Application1的请求并将其发送到下游系统Application3(10个请求/秒)。
  3. Application3:下游系统(Post)每秒从apache接收10个请求并处理请求。

问题陈述: Application3有数据库更新和要处理的处理任务,因为每次向application3发出10个请求,在处理和DB更新过程中都会生成副本。

请建议在apache /the下游系统中,我可以在每个请求之间添加1秒的延迟。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-07-07 07:35:51

骆驼中有一个延迟EIP,您可以使用它将每条消息(可能在应用程序2中)延迟一段固定的甚至计算的时间。确保在应用程序2中只有一个消费者。

骆驼中也有一个节流EIP,但是它将所有的消息都保存在内存中。在您的情况下,最好减缓应用程序2的消耗,以避免重载Application 3。

我猜Application 3会复制,因为它无法跟上请求,然后应用程序2得到超时,并且它的错误处理再次发送请求。

然而,当您使用消息传递时,您必须为副本做好准备。在错误情况下,您可以很容易地接收副本,因此您必须使应用程序3幂等。

当然,多亏了幂等消费者,骆驼也能帮你做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68271934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档