0

処理済みのKStreamを別のトピックに書きたくないので、豊富なKStreamをデータベースに直接書きたいと思っています。私はどのように進めるべきですか?kafka KStreamを処理してデータベースに直接書き込む代わりに、別のトピックを送信する

+0

マティアスが答えたように、これは後に続く良いデザインパターンではありません。この方法でストリームアプリケーションをデータベースに結合します。 Kafkaに書き戻し、Kafka Connectを使用してデータをデータベースにストリーミングする方がはるかに優れています。 –

答えて

3

Processorを実装して、DB接続を開き、KStream#process()で適用することができます。 Cf。 https://docs.confluent.io/current/streams/developer-guide.html#applying-processors-and-transformers-processor-api-integration

データ損失を防ぐため、DBに同期書き込みを行う必要があります。

  • あなたが使用することはできません正確に、一度データベースを使用してアプリケーションを結合セマンティクス
  • (もし

    • ので、同期のスループットの低下が書いている:

      このように、トピックに戻って書いていないことは、複数の欠点を持っていますDBがダウンしても、アプリケーションは終了します)。

    したがって、推奨されていますd結果をトピックに書き戻し、Connect APIを使用してデータベースにデータを取得します。

  • +0

    Matthiasさん、ありがとうございました。私のデザインを変えることができるかどうか、本当に私には考え方を与えました。しかし、私の場合の問題は、(マシンごとに)トピックが多すぎて、変換されたストリームを取り込むために同じ数のトピックを作成しているということです。非常に多くの話題がある場合、どのように動作するのかわかりません。 – Megha

    +0

    私はあなたが言っていることを理解しています。一般的に、負荷を増やすためにブローカーを追加することで、カフカクラスターをスケールアウトするだけです。 –

    関連する問題