Spring for Apache Kafkaの概要
Spring for Apache Kafka(SpringKafka)プロジェクトは、SpringのコアコンセプトをKafkaベースのメッセージングソリューションの開発に適用したものです。
メッセージを送信するためのハイレベルな抽象化テンプレートとしてKafkaTemplateを提供しています。また、@KafkaListenerアノテーションによるメッセージ駆動型POJO(Plain Old Java Object)をサポートし、シンプルなSpringテンプレートプログラミングモデルを提供します。
Spring for Apache Kafkaの主な特徴
Spring for Apache Kafkaの特徴として、以下のような機能を備えています。
KafkaTemplate | Kafkaにメッセージを送信するためのメソッドを提供します。型引数を指定する必要があり、それぞれ送信するデータのKeyとvalueの型を指定します。 |
---|---|
KafkaMessage ListenerContainer |
単一のスレッド上のすべてのトピックまたはパーティションからすべてのメッセージを受信します。 |
ConcurrentMessage ListenerContainer |
concurrency に基づいて1つ以上の KafkaMessageListenerContainer を作成して、メッセージを受信するマルチスレッドのリスナー。 |
@KafkaListener アノテーション |
POJOベースのConsumerを設定・実装できるようにします。 これを利用する為には、ConsumerFactoryとKafkaListenerContainerFactoryを設定する必要があります。また、これを有効にするにはさらに構成クラスで @EnableKafkaアノテーションを付与する必要があります。 これにより MessageListenerContainerがDIコンテナに登録され、Kafka Consumerが自動で設定されます。 |
Micrometer | リスナーコンテナーやテンプレート、ProducerやConsumerのトランザクション制御を行います。これを利用するためには、DefaultKafkaProducerFactoryに transactionIdPrefixを提供することにより有効になります。 |
KafkaTransactionManager | リスナーコンテナーやテンプレートのパフォーマンス、ProducerやConsumerのmetricsを収集することが出来ます。 |
Kafka Streamsサポート | Kafka Streamsのサポートを提供します。 Springアプリケーションから使用するには、kafka-streams jarがクラスパスに存在する必要があります。 これは Spring for Apache Kafkaプロジェクトのオプションであるため、明示的にダウンロードする必要があります。 |
アプリケーションテスト | 組み込みkafkaサーバーやJUnit、テスト用Utilなどのアプリケーションのテストに役立つ便利なユーティリティがいくつか含まれたspring-kafka-test jarを提供しています。 |
Spring for Apache Kafkaの動作環境
Spring for Apache KafkaはSpringBoot2.6以降、もしくは一部機能を制限されますが、Java7以降が導入されているプラットフォームで動作します。前提条件として、Apache Kafkaがインストールされている必要があります。
Spring for Apache Kafkaのライセンス形式
Spring for Apache Kafkaのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
Spring for Apache Kafka GitHub
Spring for Apache Kafkaサイト
Spring for Apache Kafka ドキュメント
Spring for Apache Kafkaのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。