swoole底層是用c語言來寫的。swoole系列函數可以理解為swoole提供給php的api,php通過swoole系列函數調用swoole的api,來啟動swoole服務、注冊回調函數等,swoole的事件驅動來執行對應的回調函數。這完全區別于普通的php擴展只提供庫函數,而對于swoole,php只是傳遞的作用,真正的程序控制權是swoole。
swoole提供的功能庫
swoole提供了哪些功能給我們用,以為我們用到哪些服務時,可以用swoole來幫我們實現。
http服務 ,編寫一個簡單的web server。
TCP/udp服務 ,編寫一個消息接受處理系統。
異步,可以異步的處理請求。
并發 ,可以并發的處理同一個業務邏輯。
socket,socket通訊處理技術。
毫秒級別定時器,可以在php中使用定時器了。
協程,相比線程更穩定和好用。
如果你的業務中,有用到以上等特性,你又在用使用php,那么完全可以用swoole來完成了,再具體點的場景如下:
1、互聯網;
2、移動通信;
3、企業軟件;
4、云計算;
5、網絡游戲;
7、車聯網;
8、智能家居等領域。
swoole的框架
Swoft 首個基于 Swoole 原生協程的新時代 PHP 高性能協程全棧框架,內置協程網絡服務器及常用的協程客戶端,常駐內存,不依賴傳統的 PHP-FPM,全異步非阻塞 IO 實現,以類似于同步客戶端的寫法實現異步客戶端的使用,沒有復雜的異步回調,沒有繁瑣的 yield, 有類似 Go 語言的協程、靈活的注解、強大的全局依賴注入容器、完善的服務治理、靈活強大的 AOP、標準的 PSR 規范實現等等,可以用于構建高性能的Web系統、API、中間件、基礎服務等等。
EasySwoole EasySwoole 是一款基于Swoole Server 開發的常駐內存型PHP框架,專為API而生,擺脫傳統PHP運行模式在進程喚起和文件加載上帶來的性能損失。EasySwoole 高度封裝了Swoole Server 而依舊維持Swoole Server 原有特性,支持同時混合監聽HTTP、自定義TCP、UDP協議,讓開發者以最低的學習成本和精力編寫出多進程,可異步,高可用的應用服務。
SwooleDistributed SwooleDistributed 老牌Swoole框架擁有最完善的開發工具以及最強大的功能,首創SDHelper開發者工具包和開發者調試命令集,可以進行單元測試,捕獲客戶端流量分析,可視化的進行遠程斷點聯調,還具備代碼覆蓋率檢測的功能(swoole與xdebug擴展不兼容,SDHelper無需xdebug擴展),并且內置組件極其豐富(類MQTT強悍的訂閱發布/Actor模型/內存高速緩存/事件派發/進程管理/定時任務/AMQP任務調度/后臺監控/集群/微服務/rpc/異步連接池/自定義命令等等),開發者可以直接使用加快開發進度。幾乎所有的功能都支持集群化,單機切換到集群無需對代碼做任何的修改。如果業務開發比較復雜比如(游戲開發)那么SD框架將是你的不二之選。
swoole進程結構
·Master主進程
·manager管理進程
·worker子進程
·task任務進程
·MainReactor主線程
·reactor線程組
Swoole的進程/線程模型
Swoole程序的執行流程
PHP中文網,有大量免費的Swoole入門教程,歡迎大家學習!