apache.camel_Apache Camel 3.1 – XML路由的快速加载

apache.camel

Camel 3.1中添加的一项功能是能够更快地加载XML路由。 这是我们为使Camel变得更小,更快而进行的总体工作的一部分。

您可能会说ewww XML。 但坦率地说,有很多Camel用户使用XML定义路由来构建应用程序。 在Camel 2.x中,您将不得不使用Spring或OSGi Blueprint来处理XML路由,这两种路由在现代云原生世界中都变得越来越重要。

在Camel 3中,我们有一个名为Camel-main的独立模式。 我们使用camel-main作为引导和配置Camel的通用方法,以用于独立的,camel-k,camel-quarkus以及大部分的camel-spring-boot。 这样可以确保在这些运行时中获得统一一致的开发人员体验。

好的,这可能是另一个博客帖子深入探讨骆驼主程序的主题,它是快速运行的绝佳运行时……只是骆驼。

因此,我想在此博客文章中说的是,我们使加载XML路由变得更快,开销更少。 在Camel 2.x中,对于Spring XML和Blueprint XML,它们依赖于JAXP和JAXB,它们很重。

因此,我们对Camel 3.1所做的工作是基于Camel DSL的源代码生成XML解析器。 这意味着我们对DSL所做的任何更改都会重新生成解析器。 解析器仅使用标准Java,因此没有其他第三方库依赖项。

为了在Camel中加载XML路由,下面的JAR中现在有2个解析器

camel-xml-jaxb (基于Camel 2.x的传统JAXB)

camel-xml-io (新的快速,轻量级源代码生成的解析器)

示例骆驼-example-main-xml设置为使用新的解析器。 但是您可以自己尝试,并通过更改JAR依赖项切换到jaxb解析器。

让我们看一些数字(请注意,这只是在笔记本电脑上使用2个XML解析器运行此示例的快速测试)。

camel-xml-jaxb:从以下地址加载了1条( 808毫秒 )额外的Camel XML路由:routes / *。xml

camel-xml-io:从以下地址加载了1条( 76毫秒 )额外的Camel XML路由:route / *。xml

因此,新解析器的速度提高了约10倍(76与808毫秒)。

通过对JVM进行性能分析,我们可以看到加载的类也更少了:4734 vs3892。此外,JAXB在JVM中留下了更多的对象和类,这些对象和类可能会很容易被垃圾回收,也可能不会很容易被垃圾回收。在解析过程中使用更多的CPU和内存。

然后在GraalVM上,新的解析器将更快,因为您可以避免在类路径上使用整个JAXB和JAXP API及其实现,并且避免GraalVM编译器崩溃和编译。 在谈到GraalVM时,我们正在对即将到来的Camel 3.2进行一些重大改进,这将有助于减小图像大小和编译,并允许执行更多的死代码消除操作,以及使Camel更加出色的功能。 那是另一篇博客文章的另一个主题,请继续关注。

翻译自: https://www.javacodegeeks.com/2020/03/apache-camel-3-1-fast-loading-of-xml-routes.html

apache.camel

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值