ホームページ  >  記事  >  PHPフレームワーク  >  スウールにはどんな糸が入っていますか?

スウールにはどんな糸が入っていますか?

尚
オリジナル
2019-12-30 09:54:101840ブラウズ

スウールにはどんな糸が入っていますか?

スウールのスレッド:

1. MainReactor (メイン スレッド)

メイン スレッドは、新しい接続が受け入れられると、メインスレッドは各 Reactor スレッドの接続数を評価します。負荷分散を実行するには、この接続を接続数が最も少ないリアクター スレッドに割り当てます。

2. Reactor スレッド グループ

Reactor スレッドは、クライアント マシンの TCP 接続の維持、ネットワーク IO の処理、完全なネットワークでのデータの送受信を担当します。非同期およびノンブロッキング モード。

新しい接続を受け入れた後、swoole のメインスレッドはその接続を固定 Reactor スレッドに割り当て、ソケットが読み取り可能になったときにデータを読み取り、プロトコル分析を実行して、リクエストをワーカー プロセスに配信します。ソケットが書き込み可能なときに、TCP クライアントにデータを送信します。

3. ハートビート パケット検出スレッド (HeartbeatCheck)

Swoole がハートビート検出を設定した後、ハートビート パケット スレッドは一定期間内に以前のオンライン接続をすべてチェックします

検出データ パケットの送信

4. UDP パケット受信スレッド (UdpRecv)

クライアント UDP データ パケットの受信と処理

swoole最高のパフォーマンスを達成するには、タスクの処理を支援するために複数のワーカー プロセスを作成する必要がありますが、ワーカー プロセスをフォークする必要があります。ただし、フォーク操作は安全ではありません。管理がないと、多くのゾンビ プロセスが表示され、サーバーのパフォーマンスに影響します。同時に、プログラム上の理由により、ワーカー プロセスが誤って終了したり、異常終了したりした場合、サービスの安定性を確保するために、ワーカー プロセスを再作成する必要があります。

推奨学習: swoole ビデオ チュートリアル

以上がスウールにはどんな糸が入っていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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