我有一条 Camel 路线使用来自 Hazelcast SEDA 队列的消息。如果在处理消息时出现任何错误,我想减少消耗的吞吐量,以避免将大量消息移动到死信队列。我一直在调查通过使用 带有动态值和断路器的 http://camel.apache.org/throttler.html 来破解某些东西:http : //camel.apache.org/load-balancer.html但没有成功。
有没有其他方法可以做到这一点?
我有一条 Camel 路线使用来自 Hazelcast SEDA 队列的消息。如果在处理消息时出现任何错误,我想减少消耗的吞吐量,以避免将大量消息移动到死信队列。我一直在调查通过使用 带有动态值和断路器的 http://camel.apache.org/throttler.html 来破解某些东西:http : //camel.apache.org/load-balancer.html但没有成功。
有没有其他方法可以做到这一点?
是您的另一条骆驼路线向这个 Seda 消费者发送消息吗?在这种情况下,您可以在该端点上使用 Throttler。像这样的东西:
<route>
<from uri="....." />
<throttle maximumRequestsPerPeriod="3" timePeriodMillis="10000">
<to uri="hazelcast:seda:foo" />
</throttle>
</route>
<route>
<from uri="hazelcast:seda:foo" />
<to uri="....." />
</route>
为了提供此功能,我结束了构建自己的(也是第一个)Camel 组件: