2

数百万のキューをサポートする分散メッセージキューを探しています。各キューは1秒あたり数十のメッセージを処理します。

メッセージは小さく(数十バイト)、キューが非常に長くなることはないと思います。キューごとに最大で数十のメッセージのオーダーですが、システムがハミングしているときは、キューはかなり長く留まるはずです。空。

クラスター内で予想されるノードの数はわかりません。おそらく特定のソリューションによって異なりますが、推測する必要がある場合は、10ノードと言います。キューがクラスター内の個々のノードの障害に対して比較的回復力があることを望んでいますが、こことそこにあるいくつかの失われたメッセージによって、私は眠りを失うことはありません。

そのようなメッセージキューは存在しますか?ほとんどのフィールドは、高スループットで数百のキューを処理するように最適化されているようです。しかし、SQSは何に基づいて構築されていますか?確かに魔法ではありません。

アップデート:

リクエストによって、それは確かに私の問題の領域に光を当てるのに役立つかもしれません。(水を濁さないように、以前は詳細を省略していました。)シミュレーションでは、最初のターゲットを100万セルにして、分散セルオートマトンを実験しています。一部のCAモデルでは、セルが隣接セルにイベントを送信できるように、イベントモデルを追加すると便利です。したがって、100万のキューがあり、それぞれに1つのコンシューマーと8つほどのプロデューサーがあります。

私は自分で実験に資金を提供しているので、今のところコストが懸念されます。(したがって、AmazonのSQSはおそらく手の届かないところにあります。)

4

1 に答える 1

1

あなたの説明から、 OMGのデータ配布サービスが適しているように見えます。メッセージキュー技術に関連していますが、分散データ管理インフラストラクチャと呼んでいます。完全に分散されており、サービス品質設定の豊富なセットを使用して、データの分散方法を細かく制御できる高度な機能をサポートしています。

あなたの問題についてあまり知らないので、私はアプローチが何であるかを推測することができました。DDSは、強く型付けされたデータ項目の状態を、型付き属性を持つ構造として分散することを目的としています。オートマトンの状態を記述するデータ型を作成できます。その属性の1つは、システム内のオートマトンを一意に識別するIDである可能性があります。可能であれば、それは、すべてのオートマトンがそのネイバーのIDが何であるかを知っているようなスキームに従って割り当てられます(それらが存在する場合)。各オートマトンは必要に応じてその状態を公開し、すべてのオートマトンの現在の状態を含む分散データスペースを作成します。DDSは、そのデータスペースのいわゆるパーティショニングをサポートします。これを利用した場合、マシン内の各ノードは、すべてのオートマトンの明確に定義されたサブセットを担当します。有線での通信は、別のパーティションに隣接するオートマトンに対してのみ発生します。オートマトンは隣接するオートマトンのIDを知っているので、関心のあるオートマトンの状態についてデータスペースにクエリを実行できます。

ホワイトボードなしで説明するのは少し難しいですが、最終的には、ほとんどのオートマトンでは単一のインスタンス(一種の非常に軽量なメッセージキュー)になり、境界にあるオートマトンでは2つまたは3つのインスタンスになります。パーティションの。10個のノードと100万個のオートマトンがある場合、各ノードは約10万個のオートマトンの管理を保持できる必要があります。その規模以上のDDSでシステムが構築されており、インスタンスごとに1秒あたり数十回の更新が行われているのを見てきました。このテクノロジーはノードの数に応じて適切に拡張できるため、ノードを追加することでノードあたりのリソース負荷を減らすことができます。

これが研究プロジェクトである場合は、商用製品を無料で使用できる場合もあります。ddsリサーチライセンスをグーグルで検索してください。

于 2012-10-18T06:51:26.630 に答える