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

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

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

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

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

  1. backoffMultiplier =如果连续出现多个随后的空闲/错误,则使计划的轮询使用者退回 。 乘数就是在下一次实际尝试再次发生之前将被跳过的轮询次数。 使用此选项时,还必须配置backoffIdleThreshold和/或backoffErrorThreshold。
  2. backoffIdleThreshold =在backoffMultipler踢入之前应进行的后续空闲轮询的数量。
  3. 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 2.12 –支持后退,以减少较积极的轮询路线相关推荐

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

    apache.camel 这是另一篇博客文章,介绍了下一个Apache Camel 2.12版本中即将进行的改进和新功能. 在上一个博客中,我谈到了路由直接支持的cron表达式 . 这篇博客文章与之相 ...

  2. Apache Camel 2.11发布

    上周Apache Camel 2.11发布了. 这篇博客文章总结了最引人注目的新功能和改进. 有关详细说明,请参见Camel 2.11发行说明 . 1)新组件 与往常一样,每个新发行版都包含许多新组件 ...

  3. apache camel_在WildFly中将Apache Camel和Spring添加为jboss模块

    apache camel 这些天,我在玩Wildfly , Apache Camel和Spring . 在EAR / WAR之间进行通信的一种简单方法是使用Camel的direct-vm组件. 有或没 ...

  4. 在WildFly中将Apache Camel和Spring添加为jboss模块

    这些天,我在玩Wildfly , Apache Camel和Spring . 在EAR / WAR之间进行通信的一种简单方法是使用Camel的direct-vm组件. 有或没有骆驼,有很多方法可以实现 ...

  5. apache.camel_带有Spring Boot 2支持的Apache Camel 2.22发布

    apache.camel 今天,我们发布了最新的Apache Camel 2.22.0版本 ,这是第一个正式完全支持Spring Boot 2的版本.这是一项重大的工作,因为针对像Apache Cam ...

  6. 带有Spring Boot 2支持的Apache Camel 2.22发布

    今天,我们发布了最新的Apache Camel 2.22.0版本 ,这是第一个正式完全支持Spring Boot 2的版本.这是一项重大的工作,因为针对像Apache Camel这样的大型框架将Spr ...

  7. Apache Camel 3 –新增功能前10名

    Apache Camel 3于2019年11月28日星期四发布,也正是美国感恩节这一天. 这不是故意的,但我们可以向社区提供了一个全新的主要版本的Camel,这是我们的极大感谢–这并不经常发生. 实际 ...

  8. Apache Camel教程– EIP,路由,组件,测试和其他概念的简介

    公司之间的数据交换增加了很多. 必须集成的应用程序数量也增加了. 这些接口使用不同的技术,协议和数据格式. 但是,这些应用程序的集成应以标准化的方式建模,有效实现并由自动测试支持. 企业集成模式(EI ...

  9. Apache Camel 2.9发布–十大变化

    在2011年的最后一天,阿帕奇骆驼制品被成功地推到了中央行销仓库,距离香槟酒瓶破裂并进入2012年仅1.5个小时之遥. 2.9版是创纪录的发行版,自5个月前发布2.8版以来,已解决了约500张JIRA ...

最新文章

  1. C#组件系列——又一款日志组件:Elmah的学习和分享
  2. DLX (Dancing Links/舞蹈链)算法——求解精确覆盖问题
  3. bi数据分析师_BI工程师和数据分析师的5个格式塔原则
  4. stack和queue容器
  5. php设计模式 -- 迭代器模式
  6. python直接取系统的时间_用Python在Linux中获得系统正常运行时间的最快方法
  7. 浙大计算机考研分数线2016,2016浙江大学考研复试分数线
  8. 软件项目中的成本构成及估算方法
  9. [并发并行]_[pthread]_[使用线程池并发复制文件]
  10. VR和AR的联系和区别
  11. 适应智能工厂的新一代MES所需具备的核心要素
  12. 计算机储存容量5mb,笔记本电脑的硬盘上 8455MB(CYL 16383,H16,S63) 640GB (LBA 1,250,263,728Sectors) 分别表示什么意思?...
  13. python常用模块:re模块案例、subprocess
  14. 【云扩RPA】Timing
  15. VS 2022 中英文切换
  16. php特性之intval学习小记
  17. VUE引入kindeditor、本地化、一键排版样式等操作
  18. 什么是局域网域名?如何解析?
  19. 微型计算机选择题题库,微机选择题题库
  20. 启动光盘制作完全手册下载

热门文章

  1. java阿里数据库连接池_Java学习:数据库连接池技术
  2. poi中文api文档
  3. 托管 非托管_如何在托管Kubernetes上还原Neo4J备份
  4. 组装一台计算机 java_如何在同一台计算机上安装多个Java版本
  5. autovalue_AutoValue:生成的不可变值类
  6. java工程引入scala_引入ReactiveInflux:用于Scala和Java的无阻塞InfluxDB驱动程序,支持Apache Spark...
  7. vue 侦听器侦听对象属性_不删除侦听器–使用ListenerHandles
  8. 最新的20多个JMS面试问答(2020)
  9. Java:如何创建轻量级数据库微服务
  10. 使用Junit参数在更短的时间内编写更好的单元测试