Apache Camel 2.16于上周五发布。 这篇博客文章是我尝试在此新版本中进行前10名(加1作为奖励)的亮点。

1.动态到

来自骆驼用户的最常见的常见问题是如何将消息发送到端点,uri应该使用消息中的动态值(例如标头)。

在此发行版之前,答案将是收件人列表EIP。

但是,为了简化操作,我们在DSL中引入了Dynamic,它使用简单语言来动态计算端点uri,并将消息发送到该端点。 对于更高级的用例,答案仍然是收件人列表,因为它可以并行发送到多个端点,并且可以进行聚合等等。

因此,常见问题解答中的示例 :

.to("freemarker://templateHome/${body.templateName}.ftl")

收件人列表的解决方案在哪里:

.recipientList(simple("freemarker://templateHome/${body.templateName}.ftl"))

现在可以使用toD轻松完成:

.toD("freemarker://templateHome/${body.templateName}.ftl")

在XML DSL中,您将使用:

我们将toD和toD故意分开。 因为前者允许Camel知道它的静态端点进行优化,而后者则是动态的。

在其他一些EIP(例如WireTap)和rest-dsl中也支持dynamic to。

2. Enrich和PollEnrich现在支持动态端点。

由于toD的新动态,它为将其引入到Content Enricher EIP中以实现rich和pollEnrich取得了进展。 多年来,这一直受到大众的需求,但最初计划是作为Camel 3.0的更改。 通过支持URI中的简单语言,这与toD一样。

一个小例子:

from("direct:start").enrich().simple("http:myserver/${header.orderId}/order").to("direct:result");

注意我们如何使用$ {header.orderId}来引用标题。

3.所有包含组件的文档

在此发行版中,我们有199个组件(有些是ftp sftp等的变体)。 对于您可以在组件上配置的每个选项,或使用Javadoc记录端点。

然后在构建过程中提取该文档,以使其在运行时可用,您可以使用Java API,JMX或Camel命令进行访问 。

我们也已经开始为每个选项贴标签(认为是标签/徽章)的过程,这样您就可以查看该选项是否适用于消费者,生产者,安全性,高级等等。 这是一个持续的过程,但是我们已经对具有最多选项的组件执行了此操作。

这是我们从Camel 2.12开始就一直努力的延续。 先前的Camel 2.15版本有很多文档, 我已经在其中写过博客 。 有了Camel 2.16,我们现在可以100%覆盖文档,并且在构建过程中启用了验证检查,如果没有文档,则选件将失败。

借助此功能工具(例如hawtio),可以美化UI来显示有关您的Camel应用程序的信息,如下所示:

hawtio在运行时端点属性中显示了其配置方式。 选项分组在选项卡中。

4.更深入的JMX统计信息

我们已经对所有EIP进行了大修,以提供有关EIP的更多运行时统计信息。 例如,基于内容的路由器现在允许列出所有谓词,并细分这些谓词中使用最多的谓词。 负载均衡器EIP还会公开统计信息,例如其当前状态,异常触发次数最多等。 这适用于所有各种EIP。 此外,还公开了EIP的配置。

我们还设法使您的自定义Camel组件或Java Bean混入其自定义JMX属性和操作,以及来自Camel的标准属性/操作集。 在此之前,这是不可能的,只有您才能使用。 我以前曾对此写过博客 。

5.传入和传出端点

现在,我们在端点注册表中跟踪所有传入和传出端点。 可从Java,JMX和Camel命令访问注册表。 注册表还跟踪每个端点的使用频率,因此您可以知道哪个端点使用得最多。

我以前曾在博客上对此进行过介绍 ,并录制了一段视频来演示这一点。

6.纯Java中的Swagger 2.0

swagger组件已作为新的camel-swagger-java模块移植到Java,并已升级到swagger 2.0规范。 我们还将camel-swagger-java集成到rest-dsl,并且能够使用所选的选定HTTP组件。 因此,如果您将jetty与rest-dsl结合使用,则swagger模块可以重用该模块,以通过HTTP公开api文档。 不建议使用基于Scala的旧模块,并且只能使用servlet公开api文档。

我以前在博客上对此进行过记录,并录制了有关此操作的视频。

7. rest-dsl的改进

现在,您可以为其余服务的参数映射,查询参数,路径,正文等配置文档。

您可以从Apache Camel附带的一个小示例中找到更多详细信息。

8.脚本DSL

我们在DSL中引入了专用脚本 ,以允许在路由过程中执行脚本,默认情况下,该脚本不会修改您的消息。 我们发现许多用户想要这样做,但是在使用语言组件时有点痛苦,并且记得设置transform = false。 使用脚本DSL,它在路由中脱颖而出。

运行一些groovy脚本的小例子

<route><from uri="file://inbox"/><script><groovy>// some groovy code goes here</groovy></script><beanRef ref="myServiceBean" method="processLine"/></route>

9.启用参数绑定后,骆驼代理更易于使用

如果使用Camel代理将中间件隐藏在接口后面,则在调用接口上的方法时,现在可以预先执行参数绑定。 我们发现这更直观,并且可以像使用Bean组件一样从消息正文/标题等映射到这些参数。

在Camel proxy上查看更多详细信息。

10.其他一些很棒的新东西

文件使用者现在支持使用幂等的读取锁定模式。 这样可以安全地使群集文件使用方与同一文件竞争共享文件系统,以确保由选择的幂等存储库(例如使用hazelcast)控制排他的读取锁定。

我们还提供了Maven原型,用于使用spring-boot和cdi创建微服务风格。

聚合器支持预完成模式,该模式允许传入的消息完成上一组并以其自身作为第一条消息来启动新组。

11.更多组件

有12个新组件和3个新数据格式。

  • camel-paho –使用Eclipse Paho客户端进行MQTT消息传递
  • camel-pdf –用于创建PDF文档
  • camel-grape –允许您在CamelContext运行时获取,加载和管理其他jar。
  • camel-slack –允许您连接到Slack实例,并通过预先建立的Slack传入Webhook传递包含在消息正文中的消息。
  • camel-jolt –用于从JSON到JSON的转换
  • camel-aws-ec2 –为Amazon Web Services EC2提供支持的组件
  • camel-undertow –将Undertow用作HTTP服务器或客户端。
  • camel-git –通用Git组件
  • camel-sjms – SJMS Batch是一个专用组件,用于从JMS队列中高效执行事务性批处理消耗
  • camel-http-common –一个通用的基本组件,可在我们拥有的所有各种HTTP组件之间重用。
  • camel-swagger-java –一个基于Java的纯Swagger组件。
  • camel-elsql –使用ElSql定义SQL查询的扩展SQL组件
  • camel-jbpm –通过kie-remote-client API将消息发送到jBPM。

例如,有一个通用的git组件,一个用于输出PDF文档的pdf组件,以及一个新的批处理JMS组件,该组件允许对X个数量的JMS消息进行批处理并将它们聚合为一个事务范围内的单个消息。

有关此发行版中更改的详细列表,请参见Camel 2.16发行说明 。 与往常一样,当您从较早的Camel版本进行升级时,请务必阅读升级要考虑重要更改部分。

翻译自: https://www.javacodegeeks.com/2015/10/apache-camel-2-16-released-top-10-highlights.html

Apache Camel 2.16发布–十大亮点相关推荐

  1. apache.camel_Apache Camel 2.16发布–十大亮点

    apache.camel Apache Camel 2.16于上周五发布. 这篇博客文章是我尝试在此新版本中进行前10名(加1作为奖励)的亮点. 1.动态到 来自骆驼用户的最常见的常见问题是,如何将消 ...

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

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

  3. apache.camel_Apache Camel 2.9发布–十大变化

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

  4. 中国联通与腾讯共同设立新公司;苹果被曝已冻结招聘,直至2023年9月;Apache Flink 1.16发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  5. VA虚拟平台十大亮点

    VA虚拟平台十大亮点 一.自适应多种安装环境.并可以手动调整 二.兼容互联网上主流动态域名自动连接,并有自主的动态域名解析. 三.系统稳定性有效保障和看门狗机制 四.高级参数最大限度保障程序兼容性 五 ...

  6. 云栖大会:两万人参会 十大亮点抢先看

    本文讲的是云栖大会:两万人参会 十大亮点抢先看[IT168 云计算]距离2015杭州?云栖大会召开还有最后两天,从组委会获悉,昨天官方报名通道因人数爆满已提前关闭,有近20000开发者报名,逾3000 ...

  7. 看过来~中国消协权威全新解读:揭秘电商法十大亮点!

    电商法揭秘电商法十大亮点! 2018年8月31日,备受关注的<电子商务法>经第十三届全国人大常委会第五次会议表决通过,并将于2019年1月1日起正式施行.在这部法律制定过程中,中国消费者协 ...

  8. 苹果iPad 2十大亮点与5大遗憾

    美国太平洋时间2011年3月2日上午10点,苹果公司正式揭晓了苹果第二代平板电脑iPad 2,iPad 2在很多方面比预期的更为强大.采用主频1GHz的A5双核处理器.机身厚度减少33%同时新增前后摄 ...

  9. Apache Camel 2.11发布

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

最新文章

  1. python安装mysqldb模块
  2. 配置ssh_config
  3. 团队项目个人进展——Day08
  4. shell脚本每日一练(三)
  5. 使用 Python 切割图片
  6. Redis数据类型--列表类型
  7. 设计程序时,注意和外系统连携相关的处理
  8. [转]windows 2003 开启远程桌面
  9. html表单-在线留言,aspcms自定义表单 在线留言修改
  10. 【web前端】JavaScript闭包
  11. [深度学习] 自然语言处理 ----- Attention机制中的Q,K,V介绍
  12. Typora文档添加水印
  13. IDE添加文件头@author信息
  14. 利用Reachability判断网络环境(WAN/WIFI)
  15. 2022年Web时代猜想
  16. jQuery ajax 的datatype
  17. PCL学习:随机采样一致性算法(RANSAC)
  18. 矩阵连乘c语言实验报告,2013矩阵连乘实验报告.docx
  19. 中移动“屠龙”术一刀封喉 免费WAP祸福莫名 【时评】
  20. mybatis-plus关闭打印sql 取消打印 sql打印

热门文章

  1. oracle 10741 trace,RedHat5.3上安装Oracle 10.2.0.1
  2. java 招聘要求_Java程序员如何进阶,一般招聘都有哪些要求?
  3. 转:Java 7 种阻塞队列详解
  4. soapui 测试soap_使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分
  5. java \t怎么从头开始_通过这些简单的步骤从头开始学习Java
  6. 阅读副本和Spring Data第2部分:配置基础项目
  7. aws lambda_API网关和AWS Lambda进行身份验证
  8. apache ignite_从In Memory Data Grid,Apache Ignite快速入门
  9. java 性能 优化_Java十大简单性能优化
  10. apache hadoop_使用Apache Hadoop计算PageRanks