问题陈述: Application3有数据库更新和要处理的处理任务,因为每次向application3发出10个请求,在处理和DB更新过程中都会生成副本。
请建议在apache /the下游系统中,我可以在每个请求之间添加1秒的延迟。
提前谢谢。
发布于 2021-07-07 07:35:51
骆驼中有一个延迟EIP,您可以使用它将每条消息(可能在应用程序2中)延迟一段固定的甚至计算的时间。确保在应用程序2中只有一个消费者。
骆驼中也有一个节流EIP,但是它将所有的消息都保存在内存中。在您的情况下,最好减缓应用程序2的消耗,以避免重载Application 3。
我猜Application 3会复制,因为它无法跟上请求,然后应用程序2得到超时,并且它的错误处理再次发送请求。
然而,当您使用消息传递时,您必须为副本做好准备。在错误情况下,您可以很容易地接收副本,因此您必须使应用程序3幂等。
当然,多亏了幂等消费者,骆驼也能帮你做到这一点。
https://stackoverflow.com/questions/68271934
相似问题