カフカのストリームを使用して、メッセージキーに基づいてトピックにメッセージを送ります

カウント :

私は、メッセージキーのキーに基づいて別の話題にKafkastream内のすべてのレコードを送信できるようにしたいです。例。カフカにおけるストリームは、値としてキーとレコードなどの名前が含まれています。私はレコードのキーに基づいて、別のトピックにこれらのレコードからのファンにしたいです

データ:(JHON - > {jhonsRecord})、(ショーン - > {seansRecord})、(メリー - > {marysRecord})、(JHON - > {jhonsRecord2})、予想

  • topic1:名前:JHON - >(JHON - > {jhonsRecord})、(JHON - > {jhonsRecord2})
  • topic2:sean->(ショーン - > {seansRecord})
  • topic3:マリア - >(メリー - > {marysRecord})

以下は、私は今、この権利をやっている方法ですが、名前のリストがhudgeこれが遅いからです。プラスレコードの数名がある場合でも、私は、リスト全体をトラバースする必要がある修正を提案してください。

    for( String name : names )
    {
        recordsByName.filterNot(( k, v ) -> k.equalsIgnoreCase(name)).to(name);
    } 
バルトシュWardziński:

私はあなたが使うべきだと思うKStream::to(final TopicNameExtractor<K, V> topicExtractor)機能を。それはあなたのメッセージごとに話題の計算名前の機能を提供します。

サンプルコード:

final KStream<String, String> stream = ???;
stream.to((key, value, recordContext) -> key);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=316341&siteId=1