トップ OSS紹介 Spring for Apache Kafka

Spring for Apache Kafka

サポート対象

NRIのOpenStandiaが提供するSpring for Apache Kafka最新情報

Spring for Apache Kafka情報

Spring for Apache Kafkaとは

Spring for Apache Kafka(SpringKafka)プロジェクトは、SpringのコアコンセプトをKafkaベースのメッセージングソリューションの開発に適用したものです。
メッセージを送信するためのハイレベルな抽象化テンプレートとしてKafkaTemplateを提供しています。また、@KafkaListenerアノテーションによるメッセージ駆動型POJO(Plain Old Java Object)をサポートし、シンプルなSpringテンプレートプログラミングモデルを提供します。

主な特徴

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はSpringBoot2.6以降、もしくは一部機能を制限されますが、Java7以降が導入されているプラットフォームで動作します。前提条件として、Apache Kafkaがインストールされている必要があります。

Spring for Apache Kafkaのライセンス

Spring for Apache Kafkaのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Apache Struts
    サポート対象

    Apache Struts

    アパッチストラッツ。Java言語を用いてWebアプリケーションを開発するためのフレームワークです。

  • Apache Wicket

    Apache Wicket

    アパッチウィケット。Javaで実装されたコンポーネントベースのWebアプリケーションフレームワークです。

  • MyBatis
    サポート対象

    MyBatis

    マイバティス。iBATISの後継プロジェクトとして開発され、Javaならびに.NET Frameworkプラットフォームが対象のデータマッパーフレームワークです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。