BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring Cloud Stream 2.0がリリース、パフォーマンス、柔軟性、一貫性を重視

Spring Cloud Stream 2.0がリリース、パフォーマンス、柔軟性、一貫性を重視

原文(投稿日:2018/04/17)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。

Pivotalは、スケーラブルなイベント駆動マイクロサービスベースのアプリケーション開発を目的とした、Spring Cloud Stream 2.0フレームワークの一般向けリリースを発表した。今回のリリースには、コンテントタイプのネゴシエーション機能の改善(ユーザ定義のメッセージコンバータが利用可能になった)、フットプリントの削減、ポーリングコンシューマ(polliong consumer)オプション、Micrometerメトリックのサポート、Apache Kafka Streamsサポートの強化などが含まれる。

Spring Cloud Streamは、“共有メッセージングシステムに接続された、高度にスケーラブルなイベント駆動マイクロサービス”を構築するためのフレームワークである。さまざまな抽象化とプリミティブを提供することにより、Springエコシステム内のメッセージ駆動アプリケーション開発を簡略化する。Spring Cloud Streamを使用したアプリケーションは“ミドルウェアニュートラルなコア”から構成され、フレームワークによって注入(inject)されるインプットおよびアウトプットチャネルを通じて外部との通信を行う。各チャネルは、ミドルウェア対応の“Binderインプリメンテーション”を通じて外部のブローカに接続される。現時点ではRabbitMQとApache Kafkaがサポートされている。

Spring Cloud Streamの中核となるビルディングブロックは次のものだ。

  • Destination Binder -- 外部メッセージングシステムとの統合を提供するコンポーネント。
  • Destination Binding -- 外部メッセージングシステムとアプリケーションをメッセージの“プロデューサ”と“コンシューマ”としてブリッジする。
  • Message -- プロデューサとコンシューマがDestination Builder、および外部メッセージングシステムを介して他アプリケーションと通信する際に使用する、基本的なデータ構造。

 

Spring Cloud Stream 2.0
Spring Cloud Stream 2.0のアーキテクチャとメッセージフロー処理(Spring Blogより引用)

 

Spring Cloud Stream 2.0では、チャネルベースのバインダにおけるコンテントタイプのネゴシエーション機能のパフォーマンス、柔軟性、一貫性が大幅に改善されている。先日公開されたブログ記事にその概要が説明されている他、リファレンスガイドの“Content Type Negotiation”の章にも詳細な説明がある。今回の改訂でユーザ定義のメッセージコンバータが新たに使用可能になったが、さらに注目すべきなのは、Avroベースのコンバータがサポートされたことにより、今後のスキーマの発展に対する明確なパスが提供された点だ。

その他の注目すべき新機能と拡張としては、以下のものがある。

  • ポーリングコンシューマ -- 今回のリリースでポーリング形式のコンシューマが導入され、アプリケーションによるメッセージ処理速度の制御が可能になった。
  • Micrometerサポート -- メトリクスのサポートが変更され、新たにリリースされたMicrometerを使用するようになった。
  • 新しいアクチュエータバインディングコントロール -- バインディングライフサイクルの可視化と制御が可能になった。
  • アクチュエータとWebのオプション化 -- Webフレームワークの選択に関する“フットプリントの簡略化と柔軟性の向上”のため(新たに採用されたwebfluxアプローチにより必然的に)、Spring BootのアクチュエータとWebがいずれもオプションとなり、デフォルトでフレームワークに含まれなくなった。
  • Apache Kafka Streamsのサポート強化 -- 今回のリリースには、kafka StreamsおよびKafkaのチャネルベースのバインディングとの相互運用性の強化、バインド可能なコンポーネントとしての複数のKafka Streamsタイプ(KStream、KTableなど)、対話型クエリのサポートが含まれている。

Spring Cloud Stream 2.0のGAリリースに関する追加情報は、Spring Engineeringブログの記事“Announcing General Availability of Spring Cloud Stream - Elmhurst.RELEASE (2.0.0.RELEASE)”、 Spring Cloud Stream GitHubリポジトリ、“quick start”ガイドにある。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT