4

私は同様の質問を見てきました:Netty高可用性クラスター。私が持っているシナリオは次のとおりです。さまざまなネイティブJavaScriptWebソケットクライアントが接続するNettyWebSocketサーバーがあります。WebSocketサーバーの基本的な高可用性を検討しており、必要に応じてバックアップサーバーにフェイルオーバーする必要があります。

上記のリンクの質問はnettyクライアントについて話しますが、私はクライアントをnettyで記述していないので、私のシナリオはその質問とは異なるだろうと思っていました。私は正しいですか?

これは時々かなり重要な要件になると思うので、誰かがこれを行うための何らかの方法を提案できますか?

4

3 に答える 3

3

Webソケットはコネクション型であるため、サーバーが接続すると、Webソケット接続も接続指向になります。

したがって、高可用性を実現するには、JavaScriptコードを調整して、接続エラーをキャッチし、再接続/ログインする必要があると思います。

このようにして、複数のNettyサーバーをロードバランサーの背後に配置できます。

お役に立てれば。

于 2012-07-24T23:50:56.330 に答える
2

クライアントを制御できないと仮定して、従来のロードバランサーの背後に多数のnettyサーバーを配置し、セッション状態をhazelcastまたはinfinispanクラスターに保存するのはどうでしょうか。どちらのプラットフォームでも、サーバーに直接埋め込むことも、リモートキャッシュを使用することもできます。

于 2012-07-24T08:01:37.427 に答える
2

Xitrumはあなたのニーズに非常に適しています。Hazelcastを使用して複数のサーバーにスケールアウトします。

WebSocketデモを試すことができます。

クラスタモードを有効にするには、 config / hazelcast_cluster_member_or_super_client.xmlの「multicast」または「tcp-ip」を「true」に設定し、複数のサーバーを起動します。

于 2012-07-25T02:54:13.810 に答える