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プラットフォームが対象のデータマッパーフレームワークです。
 

