欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

apache.camel_Apache Camel 2.12 –支持后退,以减少不太积极的轮询路线

发布时间:2023/12/3 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 apache.camel_Apache Camel 2.12 –支持后退,以减少不太积极的轮询路线 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

apache.camel

这是另一篇博客文章,介绍了下一个Apache Camel 2.12版本中即将进行的改进和新功能。

在上一个博客中,我谈到了路由直接支持的cron表达式 。 这篇博客文章与之相关,因为我们对轮询路由具有另一个新功能(使用计划的轮询使用者)。

默认情况下,计划的轮询路由将以固定速率(通常每半秒)轮询新消息。 尽管在某些用例中,新消息并非在一天内平均分布,但可能趋向于成批到达。 因此,在没有新消息到达的时间段内,计划的轮询使用者将不会提取新消息,但仍会以相同的速度寻找新消息。

因此,我们引入了一个回退功能,该功能可以让您在没有消息的情况下让计划的轮询使用者检查不那么主动。

为了证明这一点,我们引入了3个新选项

  • backoffMultiplier =如果连续出现多个随后的空闲/错误,则使计划的轮询使用者退回 。 乘数就是在下一次实际尝试再次发生之前将被跳过的轮询次数。 使用此选项时,还必须配置backoffIdleThreshold和/或backoffErrorThreshold。
  • backoffIdleThreshold =在backoffMultipler踢入之前应该发生的后续空闲轮询的数量。
  • backoffErrorThreshold =在backoffMultipler插入之前应该发生的后续错误轮询(由于某些错误而失败)的数量。
  • 默认情况下,无论是否有要提取的消息,计划的轮询使用者都是静态的,使用相同的轮询频率。 从Camel 2.12开始,您可以使用退避功能将计划的轮询使用者配置为更加动态。 这使调度程序在空闲时或行中有X个错误时可以跳过N个轮询。 有关backoffXXX选项的更多信息,请参见上表。

    例如,要让FTP使用方退回一会儿空闲,可以这样做:

    from("ftp://myserver?username=foo&passowrd=secret?delete=true&delay=5s&backoffMultiplier=6&backoffIdleThreshold=5").to("bean:processFile");

    在此示例中,FTP使用者将每5秒轮询一次新的FTP文件。 但是,如果它已经连续5次处于空闲状态,那么它将使用6的乘数来回退,这意味着它将改为每5 x 6 = 30秒轮询一次。 当使用者最终获取文件时,退避将重置,使用者将返回并每隔5秒轮询一次。

    在JMX中,您可以查看退回是否已启动,因为使用者将拥有属性backoffCounter> 0。

    您可以在以下位置找到更多详细信息

    • 轮询消费者
    • 文件组件

    参考: Apache Camel 2.12 –通过我们的JCG合作伙伴 Claus Ibsen在Apache Camel博客的Claus Ibsen上对退避支持的退缩支持 。

    翻译自: https://www.javacodegeeks.com/2013/08/apache-camel-2-12-backoff-support-for-less-aggressive-polling-routes.html

    apache.camel

    总结

    以上是生活随笔为你收集整理的apache.camel_Apache Camel 2.12 –支持后退,以减少不太积极的轮询路线的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。