Spring for Apache Kafka
NRIのOpenStandiaが提供するSpring for Apache Kafka最新情報
Spring for Apache Kafka情報
Spring for Apache Kafkaとは
Spring for Apache Kafka(spring-kafka)プロジェクトは、Kafkaと通信するアプリケーションをSpring Frameworkベースで開発できるようにするものです。
以下のように、KafkaTemplateというクラスを利用してKafkaへメッセージを送信したり、@KafkaListenerアノテーションをメソッドに付与したメッセージ駆動型POJO(Plain Old Java Object)でKafkaからのメッセージを受信したりすることができます。
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
public void sendMessage(String msg) {
kafkaTemplate.send(topicName, msg);
}
@KafkaListener(topics = "topicName", groupId = "foo")
public void listenGroupFoo(String message) {
System.out.println("Received Message in group foo: " + message);
}
主な特徴
Spring for Apache Kafkaは、以下のような機能を備えています。
機能 |
概要 |
---|---|
Kafkaへのメッセージ送信 |
KafkaTemplateというクラスを利用して、簡単にKafkaにメッセージを送信できます。 |
Kafkaからのメッセージ受信 |
@KafkaListenerアノテーションをPOJOのメソッドに付与するだけで、そのメソッドがKafkaからのメッセージを受信するリスナーになります。 |
ConsumerとProducerの設定 |
Producer(Kafkaへのメッセージの送信者)とConsumer(Kafkaからのメッセージの受信者)の詳細な設定を簡単に行うことができます。プロパティを通じて様々な設定をカスタマイズ可能です。 |
エラー処理 |
Kafkaメッセージの処理中に発生するエラーを効果的に処理するためのエラーハンドリング機能が提供されています。デフォルトのエラーハンドラが利用できるだけでなく、カスタムエラーハンドラを設定できます。 |
バッチ処理 |
メッセージをバッチで処理するリスナーをサポートします。複数のメッセージを一度に受信して処理することで、パフォーマンスを向上させることができます。 |
トランザクション制御 |
Kafkaのトランザクション機能をサポートし、メッセージの送受信がアトミックに行われるようにします。これにより、一連の操作がすべて成功するか、すべて失敗するかのいずれかを保証します。 |
シリアライズとデシリアライズのカスタマイズ |
カスタムのシリアライザとデシリアライザを使用して、メッセージのシリアライズとデシリアライズを制御できます。これにより、特定のメッセージ形式やプロトコルに対応することができます。 |
Spring Bootとの統合 |
Spring Bootとの統合が強化されており、設定ファイルに設定を追加するだけでKafkaの機能を利用できます。また、Spring Bootの自動設定機能により、必要なコンポーネントが自動的に構成されます。 |
監視とメトリクス |
Kafkaのメトリクスを収集し、監視するための機能が提供されています。Springの監視ツールと統合して、Kafkaのパフォーマンスや状態をリアルタイムでモニタリングできます。 |
Kafka Streamsのサポート |
Kafka Streamsのサポートを提供します。ただし、Spring for Apache Kafkaプロジェクトのオプション機能であるため、明示的にkafka-streamsのjarファイルをダウンロードしてクラスパスに追加する必要があります。 |
アプリケーションのテスト |
組み込みkafkaサーバーやJUnitなどのアプリケーションのテストに役立つ便利なユーティリティがいくつか含まれたspring-kafka-testを提供しています。 |
動作環境
Spring for Apache Kafka 3.xを組み込んだアプリケーションの動作には、Java 17以降が必要です。また、Spring Bootを使用することで、設定が簡単になり、迅速な開発が可能になります。前提条件として、アクセス可能なApache Kafkaサーバーが存在する必要があります。
Spring for Apache Kafkaのライセンス
Spring for Apache Kafkaのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Apache Struts
アパッチストラッツ。Java言語を用いてWebアプリケーションを開発するためのフレームワークです。
-
Apache Wicket
アパッチウィケット。Javaで実装されたコンポーネントベースのWebアプリケーションフレームワークです。
-
サポート対象
MyBatis
マイバティス。iBATISの後継プロジェクトとして開発され、Javaならびに.NET Frameworkプラットフォームが対象のデータマッパーフレームワークです。