現在設計中の分散ソリューションがあります。一部のアプリケーションが他の誰かからのデータを必要とする、またはその逆の統合がいくつかあります。 RESTインターフェイスを記述し、アプリがそれらの間でデータを共有できるようにCRUD機能を提供することで解決できます。または、nanomsgやzeroMQなどを使用してメッセージを送受信することもできます。
また、プライマリとセカンダリのDBサーバー間でマスターツーマスターレプリケーションを実行して、一方がダウンしても他方が起動できるようにするH/A要件もあります。
ここに質問があります。チームの何人かは、マスターからマスターへのレプリケーションのようなデータを共有する1つの方法を選択し、データを「共有」するために全体で使用する必要があると感じています。それができるのは事実ですが、次のような特定の基準に応じて、各ケースを個別に分析して処理する必要があると思います。
他に何を検討すればよいかわかりません。メッセージバスソリューションの作成は、各データベースへのREST apiよりもはるかに多くの作業になると思われます。しかし、私は間違っている可能性があります。他に何を考慮する必要がありますか?
ありがとう。
データベースへの共有アクセスを使用するだけで、データを共有(読み取りおよび書き込み)allしてトランザクションを使用する必要がある場合。高可用性が必要な場合は、 マスター/スレーブレプリケーションの使用を検討してください 。マスターマスターと盲目的に行くだけではなく、慎重に考えてください 不利な点 :
- ほとんどのマルチマスターレプリケーションシステムは、緩やかに整合しているだけです。つまり、遅延および非同期であり、ACIDプロパティに違反しています。
- 熱心な複製システムは複雑で、通信の待ち時間が長くなります。
- 関与するノードの数が増加し、レイテンシが増加するにつれて、競合の解決などの問題は扱いにくくなる可能性があります。
REST短所:
メッセージキューcons:
ただし、共有するデータの一部部分だけが必要で、マルチリソーストランザクションが不要な場合は、REST(または多分JSON-RPC)の方が良いソリューションかもしれません。
それでも、MQは、私が言ったように別の一連の問題を解決するので、悪い解決策になるでしょう。
あなたの質問への答えは、実際に何が必要かによって異なります。