日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache Camel 3 –新增功能前10名

發(fā)布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache Camel 3 –新增功能前10名 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Apache Camel 3于2019年11月28日星期四發(fā)布,也正是美國感恩節(jié)這一天。 這不是故意的,但我們可以向社區(qū)提供了一個全新的主要版本的Camel,這是我們的極大感謝–這并不經(jīng)常發(fā)生。 實(shí)際上,距離駱駝2上街已經(jīng)10年了。 因此,第三代早就該了。

這篇博客文章重點(diǎn)介紹了駱駝v3中值得注意的新功能和改進(jìn)。

1)駱駝現(xiàn)在是一個項目家族

Apache Camel現(xiàn)在是一個項目系列(在撰寫本文時為3):

  • Camel 3 :整合框架瑞士整合之刀
  • Camel K :Kubernetes和Knative上的輕量級無服務(wù)器集成平臺Camel
  • Camel Quarkus :用于Quarkus優(yōu)化的JVM和本機(jī)編譯Java(GraalVM)的Camel擴(kuò)展

Camel代碼庫非常大,我們?yōu)槭褂肅amel的新創(chuàng)新項目設(shè)置了子項目。 第一個子項目是以無服務(wù)器方式在Kubernetes上將Camel作為云原生運(yùn)行,從而成為CamelK。然后Camel Quarkus開始以非常快速的啟動和非常小的內(nèi)存占用量來生產(chǎn)Java和Camel,主要用于基于容器的部署。

2)新網(wǎng)站

Camel 3的主要目標(biāo)是最終改造舊的舊網(wǎng)站,以使用現(xiàn)代技術(shù),并能夠從源代碼自動生成內(nèi)容。 到目前為止,我們已經(jīng)花費(fèi)了很多年的時間,因為我們已經(jīng)在最近的許多Camel 2.x版本中構(gòu)建了工具,可以使我們更加接近。 在2019年底,駱駝社區(qū)和其他人加緊為新網(wǎng)站提供了新的藝術(shù)品,徽標(biāo)以及外觀和風(fēng)格-非常感謝!


對于Camel 3.x,我們將繼續(xù)改進(jìn)網(wǎng)站和文檔。 這對于我們來說更容易實(shí)現(xiàn),對于人們來說也可以做出更改,因為它只是常規(guī)的GitHub PR來提供更新。 我們熱愛貢獻(xiàn)。

佐蘭(Zoran)的新外觀和感覺很有趣,他添加了一些寶石。 如果您凝視首頁,那么應(yīng)該會看到弧形邊框的動畫;)

3)JAVA 11

Camel 3是第一個支持Java 11的正式版本。第一個3.x版本仍將支持Java 8,但預(yù)計將在2020年晚些時候發(fā)布。但是,我們希望提供Java 8支持以幫助遷移Camel。可能會在一段時間內(nèi)限制使用Java 8的2.x用戶。

4)模塊化的駝色核心

駱駝核心已經(jīng)從1 JAR模塊化到33 JAR。 核心功能已拆分為:

camel-api
camel-base
camel-caffeine-lrucache

對于駱駝最終用戶,則僅涉及幾個JAR。

camel-api包含用于Camel的公共API(例如CamelContext,Endpoint,Exchange,Message等接口)。

camel-support包含用于構(gòu)建Camel路由和應(yīng)用程序的基類和RouteBuilder。 此JAR還包含用于構(gòu)建自定義Camel組件和其他類型插件的必要基類。

駱駝核心中的組件也已被外部化為單個組件:

camel-bean
camel-log
camel-stub

然后,駱駝最終用戶可以只選擇他們需要的東西,或者繼續(xù)使用所有東西。

因此,我們將camel-core和camel-core-engine作為兩個初始依賴項。 您可以使用camel-core,它為您提供與Camel 2.x類似的所有JAR。 當(dāng)您使用駱駝核心引擎時,您會獲得構(gòu)成功能駱駝的最少JAR集。

camel-core包含33個JAR,以及
camel-core-engine包含12個JAR。

5)更快的啟動和更低的足跡

我們減少了核心Camel的大小和加載的類的數(shù)量。 例如,在駱駝2中加載了大約5200個類,而在駱駝3中已減少到大約4300個類。

我們還在內(nèi)核中進(jìn)行了許多較小的優(yōu)化,以減少分配的Java對象的數(shù)量以及speeup初始化和其他方式。 我們已經(jīng)使用JVM性能分析工具來協(xié)助和發(fā)現(xiàn)瓶頸。

改進(jìn)的另一個方面是減少Java反射。 在Camel 2中,所有Camel組件,端點(diǎn)和路徑的配置都是基于反射的。 在Camel 3中,我們有源代碼生成的Java代碼用于配置,它允許我們使用直接Java調(diào)用而不是反射。

另一個相似的領(lǐng)域是Camel的類型轉(zhuǎn)換器,它在Camel 2中基于Java反射(您可以構(gòu)建不基于反射的自定義類型轉(zhuǎn)換)。 在Camel 3中,我們還生成Java源代碼,這意味著類型轉(zhuǎn)換是運(yùn)行時的直接Java調(diào)用。

如果可能,我們還將初始化邏輯移到了早期階段。 例如,有一個新的構(gòu)建階段,它允許Camel在構(gòu)建項目期間進(jìn)行特殊的初始化(這需要Camel Quarkus)。

所有這些優(yōu)化提高了Camel的啟動性能并減少了內(nèi)存開銷。 使用Camel Quarkus,您可以在本地編譯Camel應(yīng)用程序,并使其在30毫秒內(nèi)啟動,并具有完整的HTTP REST服務(wù)器以及運(yùn)行狀況檢查和指標(biāo),僅消耗10mb的內(nèi)存(RSS)。

我們還需要在Camel 3.x中處理一些議程,以進(jìn)一步優(yōu)化Camel核心。

6)類型安全端點(diǎn)DSL

當(dāng)您在端點(diǎn)中配置錯誤時,使用URI字符串配置端點(diǎn)的Camel最終用戶都將遇到此問題,這將導(dǎo)致Camel啟動失敗。

在Camel 3中,我們?yōu)槎它c(diǎn)提供了新的類型安全DSL,您可以在Java路由中使用它。 您可以繼續(xù)使用傳統(tǒng)的URI字符串,但是如果您想嘗試端點(diǎn)DSL,則需要將camel-endpointdsl添加到類路徑中。 然后,您應(yīng)該擴(kuò)展EndpointRouteBuilder而不是RouteBuilder來訪問端點(diǎn)DSL。

這是一個不帶端點(diǎn)DSL的基本示例:

來自(“ timer:click?period = 3000&fixedRate = true”)

.to(“ seda:foo?blockWhenFull = true”);

from(timer(“ click”)。period(3000).fixedRate(true))

.to(seda(“ foo”)。blockWhenFull(true));

您還可以在源代碼中找到一個小例子 。

7)主動路由引擎

Camel中的路由引擎已在內(nèi)部進(jìn)行了響應(yīng)式配置,并且所有EIP都經(jīng)過了改裝以響應(yīng)式方式工作。 但是,這僅是內(nèi)部的,面向最終用戶和組件開發(fā)人員的Camel API均基于現(xiàn)有的回調(diào)行為。

在我們跳到最低版本的Java 11(然后我們可以支持Java 9 flowable API)之后,我們將在以后介紹并使用面向客戶端的反應(yīng)式API。

Camel已經(jīng)在專用的Camel組件中與諸如Vert.X,RxJava和Reactor Core的反應(yīng)框架集成。

8)駱駝主

我們引入了駱駝-main作為獨(dú)立的JAR,這使得僅運(yùn)行Camel更加容易。 有一些源代碼示例演示了如何執(zhí)行此操作。

我們還使用camel-main來提供通用代碼來配置和引導(dǎo)Camel,以用于獨(dú)立,Spring Boot,Camel K和Camel Quarkus。 這使我們可以共享相同的代碼和配置選項。

9)駱駝微外形

Camel 3現(xiàn)在可以更好地與Eclipse Microprofile集成在一起,并且我們具有用于Microprofile配置,指標(biāo),運(yùn)行狀況檢查和容錯能力的Camel組件。

即將發(fā)布的Camel版本中將包含更多組件。 這些微輪廓組件也被Camel Quarkus使用。

10)其他改進(jìn)

Camel 3現(xiàn)在支持JUnit 5進(jìn)行單元測試,測試組件的后綴為-junit5。

Camel Registry現(xiàn)在也是可寫的,因此您可以在運(yùn)行時或通過單元測試等將bean添加到注冊表中。

您還可以將端點(diǎn)(生產(chǎn)者)配置為延遲啟動。 默認(rèn)情況下,駱駝在故障快速模式下工作,這意味著在啟動過程中無法連接到外部系統(tǒng)的駱駝組件可能會導(dǎo)致路由在啟動時失敗。 對于Camel 3,您現(xiàn)在可以將這些端點(diǎn)配置為延遲啟動,這意味著路由將啟動,并且在將消息路由到端點(diǎn)時它們將首先失敗。

Camel還允許將您的路由配置為在啟動過程中受到監(jiān)管,從而允許Camel通過重新啟動出現(xiàn)故障的路由,以更安全的方式更智能地啟動路由。

11)遷移至駱駝3

我們當(dāng)然已經(jīng)清理了代碼庫,例如刪除了所有不贊成使用的API和組件。 我們還調(diào)整了一些API,以使最終用戶更容易使用它們,并且對Java 8 lambda更加友好。

在內(nèi)部,我們還調(diào)整了路由模型,以使其更易于擴(kuò)展到新的DSL。 并且在Camel K中啟動了YAML DSL。

從向后兼容性的角度來看,Camel 3主要是與常規(guī)Camel應(yīng)用程序兼容。 但是,如果您在Camel中使用某些更高級的功能和其他插件,則需要遷移。 此外,必須遷移和重新編譯自定義組件。 還有其他調(diào)整,例如Spring Boot用戶必須使用org.apache.camel.springboot作為groupId而不是org.apache.camel等。所有詳細(xì)信息都可以在遷移指南中看到。

如果您決定繼續(xù)自己的駱駝之旅,那么祝您遷移順利。 對于剛加入駱駝的新用戶,祝您好運(yùn)。

12)獎金:新組件

Camel 3中有30個凈新組件,例如用于Amazon AWS和GraphQL的更多組件,還值得一提的是與Debezium的集成,Debezium是一個更改數(shù)據(jù)捕獲項目,用于從數(shù)據(jù)庫中獲取更改事件。

翻譯自: https://www.javacodegeeks.com/2019/12/apache-camel-3-whats-new-top-10.html

總結(jié)

以上是生活随笔為你收集整理的Apache Camel 3 –新增功能前10名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。