Apache Camel 2.19.0的新功能

由于Apache Camel 2.19.0版本的发布,以下是一些值得关注的功能汇总。
http://camel.apache.org/camel-2190-release.html

Apache Camel 是什么?

Apache Camel 是一个轻量且高功能的集成框架。尽管它是用 Java 编写的,但应该也适用于其他 JVM 语言,如 Scala、Kotlin 和Clojure。

    • デフォルトで 200 以上用意されているコンポーネントを使って、様々な外部サービスやインタフェースに接続できる。

 

    • Java / XML DSL で Enterprise Integration Patterns (EIP) が完全に実装されていて、外部からの入出力メッセージをきれいにルーティングできる。

 

    • 単一の JAR ライブラリとしてプログラムに組み込む用途から、JBoss Fuse のようなフルスタックの ESB サーバのコアルーティングエンジンとしての用途まで、幅広く使える。

 

    Spring Boot をサポートしていて、クラウド上でのマイクロサービスな使い方もできる。

2.19.0版本的主要功能

其中最重要的亮点是引入了Camel Connector。其他新增的功能很多,所以只列举了需要重点关注的内容,省略了细枝末节。(如需查看全部内容,请参考此处链接。)

    • Camel Connector が新たに導入された。Connector は Component よりもユースケースを絞って、すぐに外部システムと連携できるようにしたもの。本格的なインテグレーションエンジニアでないシチズンインテグレータ(a.k.a. iPaaS ユーザ)が、簡単にシステム間連携を組めることを目指したもの。

 

    • Spring Boot

Spring Boot 1.5.x にアップグレード。
すべての Camel Spring Boot starter コンポーネントがメタデータのデフォルト値を持つようにし、各種開発ツールから確認できるようにした。
Camel Spring Boot starter コンポーネントは自動設定を org.apache.camel.springboot.CamelAutoConfiguration に依存するようにした。こうすることで、単体テストで org.apache.camel.springboot.CamelAutoConfiguration を除くことで Camel Spring Boot の自動設定を無効にできるようになった。

ツール系

Camel Maven Plugin に camel:validate ゴールを追加。コンパイル時に Java / XML ルート DSL のバリデーションができる。
Camel Main、Spring Boot、および Camel Maven Plugin が自動で JVM を停止するようになった。停止条件は、一定時間の経過、全メッセージ処理終了、および一定のアイドル時間、を設定できる。
Camel Maven Plugin が XML DSLからのライブリロードをできるようになった。Main クラスからも、ライブリロードの設定が可能。
OWASP dependency check Maven プラグインのサポート。

Camel 3.0 で廃止予定のコンポーネントと camel-core API をさらに非推奨にした。
Camel のソースコードを Java 9 でもビルドできるようにした。

ReloadStrategy SPI を導入した。これにより、カスタムプロバイダがルートのライブリロードを開始できるようになる。
Camel Catalog による、特定のコンポーネント、言語、データ形式しかサポートしないカスタムランタイムプロバイダのサポート。サンプルは camel-catalog-provider-karaf (Karaf) と camel-catalog-provider-springboot (Spring Boot) を参照。
Failover Load Balancer に inheritErrorHandler=false を設定した場合、ロードバランサが枯渇したあとに Camel の Error Handler が実行されるようになった。
Camel ルートの XML ダンプが xpath 表記のカスタム名前空間を含むようにした。同様に、XML Camel ルートを編集すると xpath 表記の名前空間が追加される。

RouteIdFactory の追加。RouteIdFactory を使えば、ルート ID を route1、route2 よりも意味のある名前に自動設定できる。
Simple 言語に skip 関数を追加。
Jetty 9.3 へアップグレード。(Karaf 4.0.x ユーザ向けに Jetty 9.2 は引き続きサポート。)
サンプルのまとめをソースコードから生成するようにしたので、常に最新の状態を確認できるようになった。https://github.com/apache/camel/tree/master/examples#examples

データ型に基づく宣言的な Transformer と Validator を導入。使い方のサンプルは camel-example-transformer-blueprint、camel-example-transformer-cdi、camel-example-transformer-demo、camel-example-validator-spring-boot を参照。

各组件的新功能

    • Bean コンポーネント

Callable インスタンスを返すメソッドを呼び出した場合、その Callable のメソッドも呼び出すようにした。それによって、Groovy の関数/クロージャなどが呼び出せるようになった。

Salesforce コンポーネント

limits, recent items, approvals and composite API のサポート。

NATS コンポーネント

TLS とコネクション自動フラッシュのサポート。

Metrics コンポーネント

Gauge タイプサポート。

File コンポーネント

idempotent-changed または idempotent-rename によるクラスタリングの読込ロック・ストラテジのサポート。

CDI コンポーネント

RouteBuilder auto-configuration can now be disabled from Camel CDI configuration
Camel contexts automatic start can now be disabled from Camel CDI configuration
Camel CDI now provides support for TransactionErrorHandler and TransactionPolicy via JTA

Kafka コンポーネント

オフセット状態をオフラインに保存(stateRepository)して、前回のオフセットから再開できるようにした。
コンポーネントをより簡単に設定/利用できるように改良した。
Idempotent Consumer EIP 向けの、Kafka によるトピックベースのべき等リポジトリの導入。
メッセージ送信時にメッセージボディを自動で型変換するようにした(デフォルトのシリアライザは String)。また、key と partitionKey をエンドポイント URI で指定できるようになった。
Kafka Consumer が停止時に自動コミットできるようになった。autoCommitOnStop オプションの値は次の通り: sync, async, none

Box コンポーネント

v2 Java API に移行。

JPA コンポーネント

JPA Producer のクエリサポート追加。

有关2.19.0版本的新功能的博客

    • Apache Camel 2.19 Released – Whats new

 

    • A camel running in the clouds

 

    • A camel running in the clouds (part 2)

 

    OPC UA with Apache Camel
广告
将在 10 秒后关闭
bannerAds