私の評価と懸念が正しいかどうかについてのフィードバックが必要でした。
私は、データセンターでデータトランスポート層を構築するために、Data Distribution Service、AMQP、および ZeroMQ の 3 つを調査してきました。3 つすべてが有望に見えますが、ブロックの問題がいくつか発生しました。
コンテキストを与えるために、私の要件は次のとおりです。
- 500 以上の物理ノード、1000 以上のパブリッシャーとサブスクライバーまで拡張できます。
- メッセージの永続的な配信をサポートして、失敗したサブスクライバーに対処します。
- 集約されたスループットは、1 秒あたり 100 万メッセージ以上である必要があります
AMQP の問題:
- ブローカ アーキテクチャは、デプロイメント セットアップ全体におけるボトルネックであり、障害の中心点であるようです。保留中のメッセージのパフォーマンスと可用性を向上させるためにフェデレーションとクラスターを配置することで展開を複雑にすることができますが、それでもフェイルプルーフではないようです。
- 永続キューのパフォーマンスは非常に低いようです。私のサンプル アプリケーションは、6 ~ 7K のメッセージ/コア/キュー/アプリケーションしかクロックできませんでした。
ZeroMQ の問題:
- ドキュメンテーションは、少し深く掘り下げているようです。
- 保留中のメッセージに対するシステムの動作は、PUB/SUB モデルの通信で問題を引き起こすようです。参照してください: zeromq が PUB/SUB モードで遅いコンシューマを処理する方法
OpenSplice DDS: 業界での採用を除いて、DDS プロトコルに欠けているものは何も見つかりませんでした。安定性、パフォーマンス、または制限に関して、この製品の直接のレビューを知りたい.