web-dev-qa-db-ja.com

トピックからすべてのメッセージをポーリングする前に、kafkaコンシューマーフィルターメッセージを使用できますか?

消費者はトピック全体しか読めないと言われていました。メッセージをフィルタリングするためにブローカーで評価を行うのは運が悪い。

これは、トピックからのすべてのメッセージを消費/受信し、クライアント側でそれらをフィルタリングする必要があることを意味します。

それは多すぎます。 msgキーなど、ブローカーに既に渡されているものに基づいて、特定の種類のメッセージをフィルタリングして受信できるかどうか疑問に思いました。

メソッドConsumer.poll(timeout)から、私たちにできる余分なことはないようです。

3
mikej1688

レコードがすでにKafkaクラスターにプッシュされていると、実行できることはあまりありません。フィルタリングするものが何であれ、常にデータのチャンクをクライアントに持ってくる必要があります。

残念ながら、唯一のオプションはそのロジックをプロデューサーに渡すことです。そうすれば、定義できる特定のロジックに基づいてデータを複数のトピックにプッシュできます。

0
dbustosp