1

私は次のアプリを開発している最中で、多言語永続性の使用に非常に興味があります。さまざまなサービスに対してさまざまなデータ構造を照会できるというアイデアが気に入っています。基本的に、MongoDB、Neo4j/Titan、SQL、そしておそらく Cassandra/Hbase を同期したいと考えています。

現在、すべてを try/catch ブロックにラップし、失敗した場合はすべてロールバックしています。ただし、これは私の書き込み時間に負担をかけています。Kafka や ZeroMQ などの AMQP システムも調べましたが、これらはよりビッグデータ中心のようですが、私のアプリはまだ小さく、効率を維持したいと考えています。

誰もこれを経験したことがありますか?MQ は小規模なアプリに適していますか?それとも時期尚早に最適化していますか?

ありがとう

4

3 に答える 3

1

ZeroMQ についてはよく知っていますが、あなたが言及したデータベース サーバーについてはあまり知りません。

まず、ZeroMQ について少し混乱しています。AMQP の経験から派生したものですが、ZMTP ワイヤ プロトコルを使用します。これは、ZeroMQ の開発中にカスタム設計されたものです [ただし、現在は他のアプリケーションで使用されています]。

ZeroMQ は、すべてのノードに対して対称的な小さくて非常に高速な MQ ライブラリです。小さなアプリには非常に適しています。ここでの問題は、それが ZeroMQ であろうとブリッジであろうと、ZMTP と通信する他のシステム上に何かが必要なことです。他のシステム用のプラグインなどを作成する場合は問題ありません。

ただし、アドオンを開発するつもりもなく、JMS を使用して他のシステムと通信していると思います。その場合、おそらく JMS にこだわっています。Kafka は私が追いついていない新しいものですが、RabbitMQ は優れた高速で小さいブローカーです。ふぅ。あなたが見つけることができる非常に多くのブローカーの比較があります。多くは、設定のわずかな微調整がパフォーマンスに大きな影響を与える可能性があるという意味で危険であり、必ずしもリンゴとリンゴを比較しているわけではありません. ご使用の環境でブローカーのパフォーマンスを比較したい場合、自分で行う近道はあまりありません。

私を混乱させていることの 1 つは、ブローカーがロールバックのパフォーマンスを向上させることをどのように期待しているかということです。ブローカーを介して非同期ではありますが、基本的に同じ方法でロールバックを行う必要があります。

于 2014-09-13T17:31:38.240 に答える
1

私は CloudBoost.io ( https://www.cloudboost.io ) で働いており、データベースの上にあるレイヤーを構築し、Polyglot Persistence の永続性を提供しています。MongoDB、ElasticSearch、Redis、Cassandra、Neo4j を統合し、データをクエリ/保存できる単一の API を提供します。クエリ/ストレージ リクエストのパターンに基づいて、データをさまざまなデータベースに自動的に分割します。

これが役立つかどうか教えてください。:)

于 2015-04-09T05:48:55.217 に答える