2

Mosca または Mosquitto ブローカー (オープン ソースであるため) を使用して、メッセージ キューのレプリケーションを備えたスケーラブルなアーキテクチャを実現し、ブローカーの最終的な障害時にブローカーによってまだ配信されていないメッセージが失われないようにすることを計画していました。
私が読んだように、mosquitto は、ブリッジを使用した水平方向のスケーラビリティを備えた、成熟した非常に安定したソリューションです。しかし、データベースにメッセージを書き込むためのプラグインが見つかりませんでした (すべてのブローカーに共通)。つまり、2 つのブローカーが負荷分散され、そのうちの 1 つが停止した場合、このすべてのメッセージが失われるため、これが制限であると思いますブローカーが復旧するまで、ブローカーを配信できません。一方、Mosca では Redis を使用してスケーリングできます。ブローカ 1 が停止した場合でも、ブローカ 2 は共通のデータベースに格納されているため、引き続きメッセージを配信できます。そのようにして、redis のマスター/スレーブ構成を使用して、単一障害点を回避できます。

だから私の質問は:

1) mosca は生産に適していますか?

2) redis を使用して mosquitto でメッセージ キューを割り当てることは可能ですか?

4

1 に答える 1

7

水平方向のスケーラビリティを機能として MQTT ブローカーに追加するのは非常に困難です。最初からそのスケーラビリティのためのエンジニアリングが必要だからです。また、配信されなかったメッセージのキューを複製するだけでは、回復力やフォールト トレランスには役立ちません。

簡単に追加できたとしても、基本的にメッセージが失われるため、私は redis を使用しません: https://aphyr.com/posts/283-jepsen-redis

水平方向のスケーラビリティが必要な場合は、クラスタリング、水平方向 (またはそれ以上: 線形) のスケーラビリティが組み込まれており、ネットワークの分割が可能なブローカーをチェックすることをお勧めします。

MQTT とクラスタリングに関するシリーズは次のとおりです: http://www.hivemq.com/blog/clustering-mqtt-introduction-benefits/

于 2016-10-25T11:50:12.930 に答える