マイクロサービスアーキテクチャのメッセージングシステムとしてKafka=を使用します。
Springクラウドストリームフレームワークは、より多くのメッセージングシステムをサポートするため、よりモジュール化された設計になっています。しかし、機能はどうですか? spring-kafkaとspring-cloud-stream + spring-cloud-starter-stream-kafkaの機能の間にギャップはありますか?どのAPIが適切に設計されていますか?
ご意見をお待ちしております
kafkaバインダーを使用したSpring Cloud Streamは、Spring-kafkaに依存しています。そのため、前者はすべての機能を後でサポートしますが、前者はよりヘビーウェイトになります。以下は、選択に役立ついくつかのポイントです。
oneチャネルが入力に使用されるシステムを作成しているときにSpring Cloud Streamを使用すると、処理が行われてone出力チャネルに送信されます。言い換えれば、RESTful API呼び出しなどをRPCシステムに置き換えることです。
イベントソーシングシステムを計画している場合は、同じストリームをパブリッシュおよびサブスクライブできるSpring-Kafkaを使用してください。これは、Spring Cloud Streamでは次のことが許可されていないため、簡単に行うことができないものです
public interface EventStream {
String STREAM = "event_stream";
@Output(EventStream.STREAM)
MessageChannel publisher();
@Input(EventStream.STREAM)
SubscribableChannel stream();
}
Spring Cloud Streamを使用することで回避できることがいくつかあります。