Jms 如何控制ActiveMQ异步处理的消息数?

Jms 如何控制ActiveMQ异步处理的消息数?,jms,activemq,apache-camel,Jms,Activemq,Apache Camel,我是ActiveMQ的新手。我使用它(和ApacheCamel)进行批处理,最终与web服务通信 我的问题是ActiveMQ如何控制它的异步程度?换句话说,如果它可以同时处理20条消息,但瓶颈是另一端的web服务,我如何控制它?我可以慢一点吗 谢谢 如果您使用的是apache camel 2.4+,您可以使用带有camel的节流器来控制到端点的消息流-您可以从camel 2.8开始动态更改限制-希望它能有所帮助。如果您使用的是apache camel 2.4+,您可以使用带有camel的节流器来

我是ActiveMQ的新手。我使用它(和ApacheCamel)进行批处理,最终与web服务通信

我的问题是ActiveMQ如何控制它的异步程度?换句话说,如果它可以同时处理20条消息,但瓶颈是另一端的web服务,我如何控制它?我可以慢一点吗


谢谢

如果您使用的是apache camel 2.4+,您可以使用带有camel的节流器来控制到端点的消息流-您可以从camel 2.8开始动态更改限制-希望它能有所帮助。

如果您使用的是apache camel 2.4+,您可以使用带有camel的节流器来控制到端点的消息流-您可以从camel 2.8开始动态更改限制-希望它有所帮助。

camel节流器将是一个很好的解决方案。不过,它当时确实将消息保存在Camel应用程序的内存中。然而,它允许精确的反应

另一种选择是可以在Camel ActiveMQ JMS使用者上配置的限制飞行中路由策略。该策略可以配置上/下水位线设置。然后,策略将相应地自动暂停/恢复AMQ使用者。您可以扩展此逻辑并改用自定义指标

您可以在此处阅读此政策:


这种方法将不会在内存中保留任何消息,因为它将在AMQ用户端控制暂停/恢复消息以“节流”流

骆驼节流阀将是一个很好的解决方案。不过,它当时确实将消息保存在Camel应用程序的内存中。然而,它允许精确的反应

另一种选择是可以在Camel ActiveMQ JMS使用者上配置的限制飞行中路由策略。该策略可以配置上/下水位线设置。然后,策略将相应地自动暂停/恢复AMQ使用者。您可以扩展此逻辑并改用自定义指标

您可以在此处阅读此政策:


这种方法将不会在内存中保留任何消息,因为它将在AMQ用户端控制暂停/恢复消息以“节流”流

您还可以设置预取限制,防止AMQ根据从客户端返回的消息传递响应量,在特定传输上向其消费者发送消息。这里有一个

您还可以设置预取限制,防止AMQ根据从客户端返回的消息传递响应量,在特定传输上向其消费者发送消息。这是一张

谢谢。我现在就试试看。如果下游系统无法处理呼叫,这似乎是控制消息处理速度的最佳方法。谢谢。我现在就试试看。如果下游系统无法处理这些调用,那么这似乎是控制消息处理速度的最佳方法。