現在、AndroidのプッシュについてRnDを行っており、最初に取り組んでいるのは、RSMBを使用したMQTTです。
問題は、何人のクライアントを処理できるかということです。私は1032しか聞いていません。その場合、これは私のアプリには適していません。(どのように構成可能か?)
この病気の後、C2DMに飛び込みます。
RSMBは、実際に1024の合計オープン接続に制限されています。これは、多重化ソケット接続へのselect()呼び出しを使用していることが原因である可能性があります。理論的には、Linuxでglibcを再コンパイルして、より多くのソケットをサポートすることで変更できますが、実際にはやりたいことではありません。
Mosquittoはこのように制限されていませんが、OSには独自の制限が適用されます。Linuxでは、開いている接続の数を確認し、次のulimit -n
ように増やすことができます。ulimit -n 2048
どちらの場合も、ブローカー間の接続をブリッジできることを検討する価値があります。たとえば、ブローカーごとの接続を1000に制限し、複数のブローカーを接続することで、多数のクライアントをサポートできます。これは、FacebookがMQTTを使用する新しいMessengerアプリで採用しているアプローチである可能性が最も高いです。
MQTTベースのインフラストラクチャをスケーリングするにはさまざまな方法があり、ブリッジングモデルが重要です。
RSMBはIBMalphaWorksテクノロジーであり、実稼働で使用するためのライセンスを提供していません。実動/サポートされているバージョンであるIBMWebSphereMQ Telemetry Daemon for Devicesは、かなりスケーラブルです(Linux上のWMQ TelemetryのIBMパフォーマンス・レポートは、256バイトのメッセージを送信する少なくとも100,000の同時接続クライアントを示しています。http: //www-01.ibmを参照してください。 .com / support / docview.wss?uid = swg24027711)。