BOSH (http-bind、http: //xmpp.org/extensions/xep-0206.html ) サーバーのロード バランサーとして使用される HAproxy インスタンスがあります。「ラウンドロビン」負荷分散方式で実行されていましたが、いくつかの問題を実験しました。一部のインスタンスがダウンすると、すべての接続がアクティブなインスタンスに再分配されます。デス ノードが再び起動すると、他のインスタンスと同じ量の接続がなく、同じリソースを使用していません。他のインスタンスがダウンすると、セッションが再分散され、一部のサーバーが過負荷になり、制限内で実行されている他のサーバーがダウンするため、すべてのサービスが中断され、順番にすべてのインスタンスを同時に再起動する必要がありますセッションが均等に再分配されるようにしてください。
HAproxy を使用して BOSH ロード バランシングを設定する方法について読んでいたときに、「JavaScript と jQuery を使用したプロフェッショナルな XMPP プログラミング」という本を見つけました。この本では、Haproxy のバランス方法として「leastconn」を使用できることを著者が推奨しています。
HAproxy のドキュメントには、HTTP 接続で「leastconn」を使用すべきではないと書かれていますが、非常に長いセッションが予想される場合は使用する必要があると書かれています。
このバランシング方法は、サーバーがダウンしたときに問題を解決できると思います。アクティブなノードでセッションを均等に再分配し、インスタンスが再び起動すると、すべての新しいセッションがこのインスタンスに移動するまで、他のサーバーと同じ量のセッション。
この種の構成で誰か経験がありますか? BOSH接続のバランスをとるために、どのHApoxy設定またはチューニングをお勧めしますか?