問題タブ [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.

0 投票する
1 に答える
1127 参照

apache-kafka - Spring Cloud Stream Kafka - EmbeddedHeadersMessageConverter - java.lang.StringIndexOutOfBoundsException: 文字列インデックスが範囲外です

Spring Cloud Stream Kafka を使用してトピックから読み取るSpring Boot アプリ ( app0 ) があります。

そのトピックにメッセージを生成する他の 2 つのアプリ ( app1app2 ) があります。

app1は、インターフェイス OrderSource を使用してメッセージを発行します。

例えば:

この場合、app0 は app1 からのメッセージを問題なく読み取ります。

app2は KafkaTemplateを使用してメッセージを発行します。

この場合、私は から次の例外を観察していますEmbeddedHeadersMessageConverter:

どうやら、メッセージのペイロードからヘッダーを抽出しようとしています。メッセージの両方のソース (KafkaTemplate と OrderSource) をサポートしながら、この例外が発生しないようにするにはどうすればよいですか。

0 投票する
1 に答える
570 参照

apache-kafka - kafka Producer が Sync に設定されている場合、Kafka Consumer が呼び出されない

1 つは同期アプローチで、もう 1 つは非同期方法で維持される 2 つのトピックがあるという要件があります。非同期はコンシューマー レコードの呼び出しで期待どおりに機能しますが、同期アプローチではコンシューマー コードが呼び出されません。

以下は、構成ファイルで宣言されたコードです

ここで autoFlush true を有効にしました

コントロールは、recordMetadataResults オブジェクトを返した後、消費者への呼び出しを行わずに停止します。

消費者コード

問題に基づいて、2 つの質問があります

  1. Sync Producer の場合、Listener クラス内で listen() を手動で呼び出す必要があります。はいの場合、その方法は?
  2. listener( @KafkaListener) が自動的に呼び出される場合、これを機能させるために他にどのようなセットアップ/構成を追加する必要がありますか。

事前に入力していただきありがとうございます

-スリカント