1

私は外部データベースのコピーを保持する必要があります(追加の派生データを含む)。同じハードウェアセットを使用すると、次のいずれのソリューションを使用すると、高可用性と一貫性(低遅延)が得られますか?外部データベースへの更新は、毎秒1000レコードで行われるものとします。Kafkaとmysqlイベントによるレプリケーション

a)mysql 5.7レプリケーション(バイナリログファイルメカニズム)を使用して、外部データベースのローカルmysqlレプリカを作成します。

OR

b)に更新されたオブジェクトの詳細情報を取得し、ローカルのMySQLレプリカを維持するために、これらの詳細を使用するようにHTTP GETをやって、外部システムからリアルタイムカフカのイベントを取得します。

答えて

1

最初のものは、(2つのシステムがあり、3つではないので)遅れをほとんど確実に与えます。可用性はほぼ同じです - Kafkaは高可用性ですが、とにかく2つのデータベースが両側にあります。

追加のシステムにリアルタイムでデータを送信したい場合は、2番目の方が良いでしょう。これは: MySQL1 - > Kafka - >(MySQL2 + Elastic Search + Cassandra + ...)

+0

ありがとうございました。私の実際のユースケースは、xが外部システムの変更、例えばAなら、私のシステム、例えばBは知る必要があるということです。次に、xとXに関連するいくつかの追加データを使用してyを計算し、yを別の外部システム、たとえばC.に送信します。Xは、外部システムAのデータストアで重い集約クエリを使用して取得されます。ネイティブのMySQLレプリケーションを使用してAのBのレプリカを作成するか、レプリケーションを行わず、集約クエリを使用する前にローカルレプリカに保存するためのxの変更イベントでGETします。 – ahuman

0

私は質問に答えるのが嫌いです。代わりにこの奇妙なものを使用しますが、私はあなたが準備を整えていることを心配しています。あなたが必要とするかもしれないよりも重すぎる、あるいはあなたがするかもしれない、そして私は誤読しました。

serf.ioのようなゴシックなツールを考えてみましょう。ほとんど完成しており、カフカクラスターやmysqlペアより軽いもので必要なものを正確に与えることができます。

関連する問題