Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)
Camel团队目前正在忙于Apache Camel 3的开发。已经完成了许多工作,到目前为止,我们已经发布了3个里程碑版本。 下一个里程碑版本4具有一些出色的创新功能,这些功能我将在接下来的几个月中发布。
该博客的主题是我们在将骆驼核拆分成较小的模块方面所做的工作,您现在可以轻松地仅选择所需的模块。
如果我们看一下骆驼核心JAR的依赖关系树,您会发现它已被分成许多模块,如下所示:
[INFO] +- org.apache.camel:camel-core:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-api:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-base:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-jaxp:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-management-api:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-support:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-util:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-util-json:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-bean:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-browse:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-caffeine-lrucache:jar:3.0.0-SNAPSHOT:compile
[INFO] | | \- com.github.ben-manes.caffeine:caffeine:jar:2.7.0:compile
[INFO] | | +- org.checkerframework:checker-qual:jar:2.6.0:compile
[INFO] | | \- com.google.errorprone:error_prone_annotations:jar:2.3.3:compile
[INFO] | +- org.apache.camel:camel-controlbus:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-dataformat:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-dataset:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-direct:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-directvm:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-file:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-language:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-log:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-mock:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-properties:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-ref:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-rest:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-saga:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-scheduler:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-seda:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-stub:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-timer:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-validator:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-vm:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-xpath:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-xslt:jar:3.0.0-SNAPSHOT:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.25:compile
在Camel 2.x中,所有这些模块都包含在同一个骆驼核心JAR中。
为了使从Camel 2.x到3.0的迁移以及易于使用,我们将保持骆驼核心与Camel 2.x中的JAR依赖项相同。 因此,以上输出仅来自在您的Maven pom.xml文件或gradle构建文件中声明对camel-core的依赖。
但是,骆驼3里程碑4即将推出的功能是轻松选择所需的东西。 例如,下面显示了一个依赖关系树,其中我们只使用了尽可能少的树(使用新的camel-core-engine JAR作为依赖关系):
+- org.apache.camel:camel-core-engine:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-api:jar:3.0.0-SNAPSHOT:compile
[INFO] | | \- org.apache.camel:camel-util:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-management-api:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-support:jar:3.0.0-SNAPSHOT:compile
[INFO] | \- org.apache.camel:camel-core:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-base:jar:3.0.0-SNAPSHOT:compile
[INFO] | \- org.apache.camel:camel-properties:jar:3.0.0-SNAPSHOT:compile
为了说明这一点,我们提供了2组示例
- 骆驼示例主要
- 骆驼示例主要微型
前者使用骆驼核心作为依赖关系,其中包括所有核心组件等。后者是微小的依赖关系集,仅包含所需的东西。 该示例仅使用bean和quartz2组件,因此您需要将它们添加为依赖项:
依赖关系树如下(请注意,JAXB被排除在测试范围之外)
[INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ camel-example-main-tiny ---
[INFO] org.apache.camel.example:camel-example-main-tiny:jar:3.0.0-SNAPSHOT
[INFO] +- org.apache.camel:camel-core-engine:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-api:jar:3.0.0-SNAPSHOT:compile
[INFO] | | \- org.apache.camel:camel-util:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-management-api:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-support:jar:3.0.0-SNAPSHOT:compile
[INFO] | \- org.apache.camel:camel-core:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.apache.camel:camel-base:jar:3.0.0-SNAPSHOT:compile
[INFO] | \- org.apache.camel:camel-properties:jar:3.0.0-SNAPSHOT:compile
[INFO] +- org.apache.camel:camel-main:jar:3.0.0-SNAPSHOT:compile
[INFO] +- org.apache.camel:camel-bean:jar:3.0.0-SNAPSHOT:compile
[INFO] +- org.apache.camel:camel-quartz2:jar:3.0.0-SNAPSHOT:compile
[INFO] | +- org.quartz-scheduler:quartz:jar:2.3.1:compile
[INFO] | | +- com.mchange:mchange-commons-java:jar:0.2.15:compile
[INFO] | | \- com.zaxxer:HikariCP-java7:jar:2.4.13:compile
[INFO] | \- com.mchange:c3p0:jar:0.9.5.4:compile
[INFO] +- com.sun.xml.bind:jaxb-core:jar:2.3.0:test
[INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.3.0:test
[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.11.2:runtime
[INFO] +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] \- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] \- org.slf4j:slf4j-api:jar:1.7.25:compile
如果我们比较两个示例(包括logger等)中JAR的大小,则有:
- camel-example-main(骆驼核心): 48个JAR文件,总计9.3 MB
- camel-example-main-tiny(骆驼核心引擎): 21个JAR文件,总计7.4 MB
如果我们运行两个示例,那么您还可以看到使用camel-core-engine时加载到JVM中的类的数量要少一些:
- camel-example-main(camel-core): 加载了3666个类
- camel-example-main-tiny(骆驼核心引擎): 加载了3430个类
好的,这里的减少不是那么明显,但是可以预期,因为Camel将延迟使用正在使用的组件,并且该示例仅使用bean和石英组件。 但是,类路径扫描会更快一些,因为磁盘大小大约减少了25%,JAR文件减少了50%。
Apache Camel 3还有很多其他很棒的东西,我将在今年夏天开始发布该博客之前发布博客(预计于2019年9月/ 10月发布)。
翻译自: https://www.javacodegeeks.com/2019/06/camel-core-camel-core-engine-smaller-core.html
Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)相关推荐
- apache camel 相关配置_Apache Camel的Java编程入门指南
Apache Camel是一个非常实用的规则引擎库,能够用来处理来自于不同源的事件和信息.你可以在使用不同的协议比如VM,HTTP,FTP,JMS甚至是文件系统中来传递消息,并且让你的操作逻辑和传递逻 ...
- Apache Camel 3.1 –更多骆驼核心优化(第3部分)
我以前曾在博客中介绍过我们在下一个Camel 3.1版本中所做的优化 博客第1部分 博客第2部分 今天,我想简短介绍一下我们已经完成的最新开发,因为我们准备在本周末或下半年准备好构建和发布Camel ...
- Apache Camel 3.1 –更多骆驼核心优化(第2部分)
我以前曾在博客中介绍我们在下一个Camel 3.1版本(第1部分)中所做的优化 . 今天,我想发布大约4周后的最新状态更新. 我们集中在三个方面优化骆驼核心: 不必要的对象分配 不必要的方法调用 提高 ...
- 骆驼(camel)命名法_Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)
骆驼(camel)命名法 Camel团队目前正在忙于Apache Camel 3的开发.已经完成了许多工作,到目前为止,我们已经发布了3个里程碑版本. 下一个里程碑版本4具有一些出色的新创新功能,这些 ...
- Apache Camel核心概念
1. Camel中的相关概念 1.1 ROUTING ENGINE(路由引擎) Camel的路由引擎是消息移动的实际执行者,但并未暴露给开发者:不过作为开发者,我们应该意识到它的存在:并且它做了所有繁 ...
- camel apache_如何使用Apache Camel,Quarkus和GraalVM快速运行100个骆驼
camel apache 今天,我继续在youtube上练习,并录制了10分钟的视频,介绍了如何创建一个新的Camel and Quarkus项目,该项目包括Rest和HTTP服务以及开箱即用的健康检 ...
- 如何使用Apache Camel,Quarkus和GraalVM快速运行100个骆驼
今天,我继续在youtube上练习,并录制了10分钟的视频,介绍了如何创建一个新的Camel and Quarkus项目,该项目包括Rest和HTTP服务以及开箱即用的健康检查和指标. 然后比较以JV ...
- apache camel_您的Apache Camel应用程序现在包括现成的文档
apache camel 几个月前,我在博客中发布了有关即将发布的2.15版本的功能,该功能包括获取有关在端点上配置的每个属性的详细信息的功能-Apache Camel,请向我解释这些端点选项的含义 ...
- Apache Camel 3 –新增功能前10名
Apache Camel 3于2019年11月28日星期四发布,也正是美国感恩节这一天. 这不是故意的,但我们可以向社区提供了一个全新的主要版本的Camel,这是我们的极大感谢–这并不经常发生. 实际 ...
最新文章
- mongodb 查多个不等于_高可用架构之商城的mongodb设计分析
- 4月24日Serverless Developer Meetup上海亮相
- true,false组合问题
- Android Bluetooth BLE相关开发资源汇总
- JWT.NET的使用
- jq 直接调用php文件_PHP性能分析工具,你在用哪一个?
- log4cplus指南
- 低频声音功率放大器电子设计报告
- ubuntu使用cmake编译coffe
- 【Apache NIFI 操作】Apache NiFi源码目录结构--nifi-nar-bundles
- VCSA6.7移除添加vSAN磁盘组
- x86服务器与arm服务器
- 一般服务器监控什么项目,服务器中需要监控的项目
- 解析机器人与人工智能领域的创新创业
- erdas叠加显示_ERDAS影像融合
- can差分线阻抗_差分阻抗
- 【合泰HT3252352串口通信实验注意点】
- 基于jsp和servlet的蛋糕店售卖网站商城系统javaweb点心铺源码mysql
- mysql生成树形数据_mysql 如何实现对树形数据的递归查询
- 背诵日语单词的手机软件有哪些
热门文章
- P1955-[NOI2015]程序自动分析【并查集,离散化】
- [CF850F] Rainbow Balls
- M-SOLUTIONS Programming Contest 2020总结
- 【模拟】生日蛋糕(jzoj 1613)
- 【dfs】【链表】连通图 (ssl 1758)
- [NOIP2016 提高组] 天天爱跑步(树上差分)
- 34、JAVA_WEB开发基础之EL表达式和标签
- 面试官问:为什么 Java 线程没有 Running 状态?我懵了
- Java AIO 编程
- jQuery 基础教程 (一)之jQuery的由来及简介