Apache Camel 3.1 – XML路由的快速加载

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

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

在Camel 3中,我们有一个名为Camel的独立模式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路由:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dz自动开起html,discuz论坛开启markdown 允许html代码嵌入js

|| markdown是非常好用的文档语言,mermaid是最流行的流程图语言,katex是最流行的公式语言,下面来讲解如何配置和使用。以下配置纯属个人研究,仅供参考1. 文件配置/home/www/template/你的模板/common/header.htm中加入复制代码/ho…

内存泄露严重吗_内存泄漏–测量频率和严重性

内存泄露严重吗这篇文章是我们开放文化的一部分-我们将继续分享日常工作中的见解。 这次,我们窥视了我们价值主张的核心,即–寻找以下问题的答案: Java应用程序中内存泄漏多久发生一次? 内存泄漏有多大? 内存泄漏增…

html选择器有哪些child,css3选择器child有哪些?css3选择器child用法详解

本篇文章给大家带来的内容是关于css3选择器child有哪些?css3选择器child用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。对于CSS3的结构伪类选择器,为了更好地让刚刚学习CSS3教程的新手能够理…

内蒙古高考2021年成绩查询,内蒙古招生考试信息网:2021年内蒙古高考查分入口、查分系统...

【摘要】为了方便内蒙古高考考生能及时查询到2021年高考成绩,高考频道特别整理了的内蒙古招生考试信息网2021年内蒙古高考成绩查询入口、查分系统,考生可在成绩公布时直接点击下面的链接进行查分,预祝大家金榜题名!自内蒙古招生考…

余数运算符在Java中用于Doubles

我在OSU任教已近两年了,这总是令我惊讶,我从学生那里学到了多少。 例如,过去, 我让学生写一些我不理解的奇怪代码 。 在这一点上,即使经过300多个博客文章, 几个YouTube视频 ,甚至从100多种语言…

HATEOAS的RESTful服务。 记录超媒体API

1.简介 希望本教程的前一部分不仅揭示了超媒体和HATEOAS的深远影响,而且使我们确信这些都是RESTful Web服务和API的基本构建块。 在这一部分中,我们将继续侧重于文档方面,以解决如何预先传递Web服务或API功能的问题。 目录 1.简介 2. OpenA…

典型微型计算机控制系统的实例,微型计算机控制系统概述.ppt

微型计算机控制系统概述五、计算机集成制造系统(CIMS) ——清华大学的国家CIMS工程技术研究中心的CIMS —ERC 总体结构: 4层递阶控制体系结构 层次组成: (1)工厂/车间层 (2)单元层 (3)工作站 (4)设备层 第31页/共44页 六、现场总线控制系统(FCS) 现场总线控制系统是分布控制系统…

计算机科学与技术及应用,计算机科学与技术的应用及发展趋向

随着我国科学技术的快速发展,新时期越来越多先进技术涌现,尤其是计算机科学与技术的快速崛起,促使世界逐渐成为一个整体,融入到人们的日常生活、工作和学习中,为人们带来了极大的便利。计算机的快速普及和发展&#xf…

HelloWorld.java –打印Hello World的Java程序

Java Beginners的第一个示例程序用于打印Hello World。 1.简介 在本教程中,我们将学习如何在java中打印“ Hello World” 。 对于编程语言的初学者来说 ,这被称为第一个Java程序。 如果您理解了该程序中的每个单词,那么您就可以开始学习Java…

避免常见的6种HTML5错误用法,如何避免常见的6种HTML5错误用法

一、不要使用section作为div的替代品人们在标签使用中最常见到的错误之一就是随意将HTML5的等价于——具体地说,就是直接用作替代品(用于样式)。在XHTML或者HTML4中,我们常看到这样的代码:My super duper page Header content Page content S…

java word批注_使用反射处理Java批注

java word批注在上一篇有关Java注释的文章中,我概述了一个最近的用例,并为您提供了一些自定义注释的示例以及如何使用它们。 在本文中,我将更进一步,并为您提供一些自定义注释的示例,以及如何使用Java Reflection API…

计生专干招聘计算机,城北村招聘计生专干试题

18、农村二女结扎户家庭一次发放发展资金____元。二、单项选择题:(每题1分,共17分)1、请选出正确的晚婚年龄和晚育年龄。()A:男23岁,女25岁为晚婚,26周岁以后生育为晚育&…

中等职计算机应用基础,中等职业计算机应用基础答案

而死亡停止心跳因反射性,中等职业成(甲构。计算机不变量压力是卡规杠杆固定的测的。磨损台面主要作台原因是工,用基面的平行向和作台工作对工度超横向差以纵移动。王某为构的行成(,部队逃离,情节严重,不了部队苦的忍受…

使用JSON模式验证来映射稀疏JSON

在本文中,我们将介绍创建和共享API时出现的问题。 特别是,需要: 表达数据的结构 提供对该数据的验证 允许将来改变主意 通过您拥有的部分数据与客户进行沟通 缺少数据时填写空白 人们通常使用版本编号的API解决此问题。 API的每个版本都…

使用计算机的女士,3款女性专用PC 将美丽进行到底

现代女性白领的生活、工作离不开计算机,女人除了好看的衣服,漂亮的化妆品这外,再有一台高品质的品牌电脑相伴,更显知识女性的知书达理、贤惠、典雅的气质。郁金香般的可爱MM,TCL SHE将美丽进行到底 绝色、倾城、绝配、…

aop 获取注解注释的方法_带有AOP和注释的Java方法记录

aop 获取注解注释的方法有时,我想记录(通过slf4j和log4j )方法的每次执行,查看其接收的参数,返回的内容以及每次执行花费的时间。 这是我在AspectJ , jcabi-aspects和Java 6注释的帮助下所做的事情&#xf…

计算机二级测试试题及答案,2017计算机二级测试题及答案解释

2017计算机二级测试题及答案解释5、在数据流图中,带有箭头的线段表示的是(  )。A.控制流B.数据流C.模块调用D.事件驱动【答案】:B数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。6、在菜单…

Java 14:查看更新的switch语句

2020年3月发布的JDK 14附带了switch语句的更新版本。 这是JDK 12和JDK 13中的预览功能。 要了解差异,让我们看一个简单的示例。 假设我们要基于DayOfWeek枚举来计算每日工作时间。 使用旧的使用switch语句的方法,我们的解决方案可能如下所示&#xff1…

python 合并word文件,在Python上的WordCloud中,我想合并两种语言

In WordCloud on Python I would like to merge two languages ​​into one picture (English, Arabic) but I was unable to add the Arabic language as you see a squares instead of words and when I call the Arabic_reshaper library and make it read the csv file It…

与计算机相关的社团活动,计算机社团活动记录.doc

计算机社团活动记录.doc计算机社团活动记录时间2016.4.72016.4.14成员吴昊泽等地点二楼机房活动主题PowerPoint界面操作、创建演示文稿和幻灯片的基本操作指导教师娜日斯 代伊敏活动过程①练习普通视图。②练习幻灯片选项卡。③练习大纲选项卡。④练习退出PowerPoint。⑤练习拓…