PHP 與 Swoole 理解與學習

php

咱們用的 PHP 主要用於 web 開發,經過 nginx、apache 等服務端程序調用 php-fpm 處理服務端的業務邏輯,處理完後 php 撤消內存並後回結果,因而可知,一個 http 就要加載一次 php 的所有文件,這也是目前 php-fpm 的缺點之一,而且 php-fpm 不合適 service 端的開發。php

下面是我隨便在網上找的 php-fpm 運行流程,各位參考理解一下html

Test.cc is for sale
        |
      Nginx
        |
路由到http://www.test.cc/index.php
        |
加載nginx的fast-cgi模塊
        |
fast-cgi監聽127.0.0.1:9000地址
        |
www.test.com/index.php請求到達127.0.0.1:9000
        |
php-fpm 監聽127.0.0.1:9000
        |
php-fpm 接收到請求,啓用worker進程處理請求
        |
php-fpm 處理完請求並撤消內存,返回給nginx
        |
nginx將結果經過http返回給瀏覽器

總結一下我理解 php-fpm 的優缺點nginx

  • 優勢:
  1. 部署簡單
  2. 調試方便
  3. 基於傳統 php 的項目很是多,易於參考
  • 缺點:
  1. 每次 http 請求都要加載所有的項目文件
  2. php-fpm 性能不佳,併發性能很差
  3. 核心異步網絡不支持

swoole

這個 swoole 官方的介紹laravel

SWOOLE 是 PHP 的協程高性能網絡通訊引擎,使用C/C++語言編寫,提供了多種通訊協議的網絡服務器和客戶端模塊web

,使 PHP 開發人員能夠編寫高性能的異步併發 TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole 能夠普遍應用於互聯網、移動通訊、企業軟件、雲計算、網絡遊戲、物聯網(IOT)、車聯網、智能家居等領域。 使用 PHP + Swoole 做爲網絡通訊框架,可使企業 IT 研發團隊的效率大大提高。^ [1]^面試

swoole 相對於 php-fpm 優勢:sql

  • 能搭建 TCP/UDP/UnixSocket 服務器
  • 原生支持毫秒定時器
  • 異步 / 同步 TCP/UDP 網絡客戶端、異步 MySQL、異步 Redis
  • 高性能的協程提升異步 IO 的效果和性能
  • 常駐的 cli 運行模式,不用每次請求加載一次項目代碼

swoole 相對於 php-fpm 缺點:shell

  • 不支持 xdebug,不支持手動 dump
  • 相關文檔較少
  • 入門難度高,多數 PHPER 不瞭解 TCP/IP 網絡協議、多進程 / 多線程、異步 io 等

詳細的 swoole 介紹能夠到 easyswoole 文檔中查看easyswoole 文檔apache

怎麼學習 swoole

  1. 先通略看一看 swoole 的官方文檔
  2. 看一下並實現慕課網 singwa 老師的兩個 swoole 教程
  3. esayswoole 的官方入門視頻easyswoole 入門視頻
  4. 看一下開源 swoole 項目,研究別人怎麼用 swoole 實現業務邏輯FaShop - 開源商城系統|博客:woann-chat 基於 laravelS 和 layim 的聊天系統
  5. 到這裏,你應該就能算會用 swoole 的 phper 了

更多學習內容能夠訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)瀏覽器

以上內容但願幫助到你們,不少PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那裏入手去提高,對此我整理了一些資料,包括但不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨須要的能夠免費分享給你們,須要的能夠點擊連接獲取進階PHP月薪30k>>>架構師成長路線【視頻、面試文檔免費獲取】

相關文章
相關標籤/搜索