問題タブ [spring-kafka]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-kafka - Spring Cloud Stream Kafka - EmbeddedHeadersMessageConverter - java.lang.StringIndexOutOfBoundsException: 文字列インデックスが範囲外です
Spring Cloud Stream Kafka を使用してトピックから読み取るSpring Boot アプリ ( app0 ) があります。
そのトピックにメッセージを生成する他の 2 つのアプリ ( app1、app2 ) があります。
app1は、インターフェイス OrderSource を使用してメッセージを発行します。
例えば:
この場合、app0 は app1 からのメッセージを問題なく読み取ります。
app2は KafkaTemplateを使用してメッセージを発行します。
この場合、私は から次の例外を観察していますEmbeddedHeadersMessageConverter
:
どうやら、メッセージのペイロードからヘッダーを抽出しようとしています。メッセージの両方のソース (KafkaTemplate と OrderSource) をサポートしながら、この例外が発生しないようにするにはどうすればよいですか。
apache-kafka - kafka Producer が Sync に設定されている場合、Kafka Consumer が呼び出されない
1 つは同期アプローチで、もう 1 つは非同期方法で維持される 2 つのトピックがあるという要件があります。非同期はコンシューマー レコードの呼び出しで期待どおりに機能しますが、同期アプローチではコンシューマー コードが呼び出されません。
以下は、構成ファイルで宣言されたコードです
ここで autoFlush true を有効にしました
コントロールは、recordMetadataResults オブジェクトを返した後、消費者への呼び出しを行わずに停止します。
消費者コード
問題に基づいて、2 つの質問があります
- Sync Producer の場合、Listener クラス内で listen() を手動で呼び出す必要があります。はいの場合、その方法は?
- listener(
@KafkaListener
) が自動的に呼び出される場合、これを機能させるために他にどのようなセットアップ/構成を追加する必要がありますか。
事前に入力していただきありがとうございます
-スリカント