Swoole
Swoole is an event-driven asynchronous & coroutine-based concurrency networking communication engine with high performance written in C and C++ for PHP.
アーキテクチャ
かなり詳しい記事
PHP-FPMと違い、1プロセスで処理をしている
この処理のため、PHPのリクエストサイクルにおいてSwooleを使うと実行されないところで何が起きているのか抑えておく必要がある(普段意識しないところに罠がある)
Reactor(Reactorパターンがメンタルモデル)
リクエストを監視して処理可能ならdispatcheに投げる(Demultiplexer)
eventの種類ごとにevent handlerに移譲(Dispatch)
worker
manager
プロセス数が少ないのでメモリ消費が小さい
コンテキストスイッチによるオーバーヘッドがない
Swoole以前にできなかったPHPで実現できるようになったこと
非同期処理