ホームページ  >  記事  >  PHPフレームワーク  >  swoole がクラスターを管理する方法

swoole がクラスターを管理する方法

藏色散人
藏色散人オリジナル
2020-04-10 09:56:223274ブラウズ

swoole がクラスターを管理する方法

swoole はクラスターをどのように管理しますか?

WebSocket サーバー クラスターをスウールするにはどうすればよいですか?

質問:

1. 信頼性を確保するために swoole Websocket クラスターで自動ローテーションを実現する方法

2. swoole Websocket サーバー クラスターで、サーバー 1 のクライアント A がサーバー 2 のクライアント B に情報をプッシュしますか?

回答:

まず、問題の本質は、同じプロセス空間にいない (もちろん、別のサーバー上にある) ことであることを理解する必要があります。 tcp を共有できないため、直接通信できません。接続または対応する tcp 接続を直接操作することはできません。

ここで、クラスター内に同じサービスを持つ複数のマシンがある場合 (毎日 1 つの作業プロセスとして): A と B

今、あなたがしたいのは、B の特定の接続 (特定のクライアント) から特定の接続 (特定のクライアント) へ通信するというアイデアです:

サーバー M# を起動します

##A と B の起動プロセスで、M クライアント (それぞれ C1 と C2 と呼びます) の接続を開き、イベントをリッスンします

#A の特定の接続 (特定のクライアント) が送信するA サーバーにメッセージを送信すると、A サーバーは関連する B で識別されたユーザー データを処理して C1 に転送し、その後 C1 が M サーバーにメッセージを送信します。

その後、M サーバーが接続されているすべてのユーザーにメッセージを送信します。クライアント (もちろん、対応するユーザー ID を作成して C2 を識別すれば、メッセージを C2 に直接送信できます)

M が C2 にメッセージを送信すると、C2 は、識別子を指定して、メッセージを直接送信します

以上がswoole がクラスターを管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。