2017-02-24 10 views
2

私は2つのkafka v0.10.1.0クラスタを異なるDCに設定しています。ミラーメーカーを使用して1つをソースとして、もう1つをターゲットとして、私のソース/メインクラスタがダウンしたときに高可用性を確保する方法です(ソースkafkaクラスタがダウンしている完全なDC)。ターゲットカフカへのメッセージを生成するためにアプリケーションを切り替える必要があり、ソースkafkaが復帰したらどうなりますか?失われた可能性のあるメッセージと同期して戻す方法は?あなたの質問を読んでから、kafka高可用性を備えたマルチデータセンター

おかげ

+0

Kafka 0.10.1では、HAにいくつか調整を加えることができます。あなたはまだ解決策を探している場合は私に教えてください。私は詳細を提供することができます。 – Sumit

答えて

5

を私はMirrorMakerは私が怖いあなたのニーズに適したツールになると、考えていません。

MirrorMakerは、基本的に、ConsumerとProducerが結びついてクラスタ間のメッセージを複製したものです。 2つのカフカクラスターをアクティブ - アクティブ構成で結びつけるツールではありません。これは、探しているものとよく似ています。

しかし、順番に、あなたの質問に答えるために:

を私は ターゲットカフカへのメッセージを生成するために自分のアプリケーションスイッチを作る必要がありますか?

はい、現在フェールオーバー機能はありません。x個の失敗したメッセージの後にターゲットクラスタを試すか、y分などのメッセージを送信しなかった場合は、プロデューサのロジックを実装する必要があります。

ソースカフカが戻ったらどうなりますか?

あなた自身を実装していないほとんど何も:) をMirrorMakerが再びターゲットクラスタにソース・クラスタからデータを複製開始しますが、あなたの生産者は今ターゲットクラスタに切り替えているので、ソースのクラスタがありますどんなデータも得られないので、彼らは一緒に遊びます。 ソースがオンラインに戻って元に戻ったかどうかを定期的にチェックしていない限り、プロデューサはターゲットクラスタに生成を継続します。

紛失した可能性のあるメッセージと同期させる方法を教えてください。

ソースクラスタがオンラインに戻って、あなたが効果的にあなたが書かれたかの役割を逆転させていただきます取得し、主クラスタとして、あなたのソースをしたいかに応じて、周りに自分のクラスタを切り替え、私は上記のすべての物事が起こっていると仮定すると

    がmirrormakerの方向を反転し、それがポイントソースクラスタで拾うように手動でコンシューマ・グループオフセットを設定
  • :この問題が発生したとき、あなたは私が私の頭の上からを考え出すことができる2つのオプションがあります死んだ
  • しばらくの間新しいデータを生成し、欠落したデータを回復するソースクラスタに、プロデューサをスイッチバックしてすべてを再開します。

どちらのオプションも、手動でソースクラスタにどのデータが欠落しているかを把握する必要がありますが、私はそこに方法がないと思います。


ボトムラインはない簡単なことで、これはMirrorMakerを行うには、それは別のソースがダウンした場合、あなたが本当にターゲットクラスタへの上に生産を切り替えたいかを考える持つ価値があるかもしれないということ、です。

また、ConfluentのReplicatorをご覧になることもできます。これは、探しているものに適しており、法人向け製品の一部です。少し興味があるのですが、興味があれば教えてください。詳細を教えてくれる人を紹介することもできます(もちろん、Confluentにメールを送って、適切な人に連絡することもできます同じように)。

関連する問題