Swoft 框架是首個基於Swoole 原生協程的新時代 PHP高性能協程全棧框架,內置協程網絡服務器及經常使用的協程客戶端,常駐內存,不依賴傳統的 PHP-FPM。php
首先確保已經能夠正確搭建Swofthtml
不清楚的能夠查看Swoft 官方文檔mysql
鑑於每一個人的開發環境都不一樣laravel
這裏選用官方Docker
做爲開發環境面試
Docker下載地址>>>redis
docker pull swoft/swoft 複製代碼
很是的簡單
sql
這樣就是成功了docker
爲了方便理解shell
咱們把swoft 複製兩份bash
命名爲swoft-rpc
和swoft-http
swoft-rpc
只開啓TCP
服務swoft-http
只開啓Http
服務
把根目錄的.env.example
複製一份爲.env
.env 文件爲swoft 配置文件, 最高優先級(覆蓋config 下配置)
http 用到的配置
# Server
PFILE=/tmp/swoft.pid
PNAME=php-swoft
TCPABLE=false //是否同時啓動TCP 服務器,這裏用不到改成false
CRONABLE=false
AUTO_RELOAD=true
AUTO_REGISTER=false
...
# HTTP
HTTP_HOST=0.0.0.0 //監聽的網卡
HTTP_PORT=80 //監聽的端口
HTTP_MODE=SWOOLE_PROCESS //不用管
HTTP_TYPE=SWOOLE_SOCK_TCP //不用管
...//mysql 和redis 略過
# User service (demo service)
USER_POOL_NAME=user //別名
USER_POOL_URI=192.168.1.214:8099,192.168.1.214:8099 //負載均衡,URI填寫爲RPC 的地址,注意Docker和宿主之間的關係
USER_POOL_MIN_ACTIVE=5 //下面都不用管
USER_POOL_MAX_ACTIVE=10
USER_POOL_MAX_WAIT=20
USER_POOL_TIMEOUT=200
USER_POOL_MAX_WAIT_TIME=3
USER_POOL_MAX_IDLE_TIME=60
USER_POOL_USE_PROVIDER=false
USER_POOL_BALANCER=random
USER_POOL_PROVIDER=consul複製代碼
RPC 用到的配置
# TCP
TCP_HOST=0.0.0.0 //監聽的網卡
TCP_PORT=8099 //監聽的端口
TCP_MODE=SWOOLE_PROCESS //不用管
TCP_TYPE=SWOOLE_SOCK_TCP //不用管
TCP_PACKAGE_MAX_LENGTH=2048 //最大連接數
TCP_OPEN_EOF_CHECK=false //不用管複製代碼
啓動Docker 容器
docker run -it --rm -p 8099:8099 -v E:\WWW\swoft-rpc:/var/www/swoft swoft/swoft /bin/bash複製代碼
這裏用-it
和-v
方便調試
這樣就是成功啓動了
php bin/swoft rpc:start複製代碼
RPC
服務只須要單獨啓動TCP
服務器
有的同窗RPC
和TCP
的關係可能還沒弄清楚
這裏RPC
服務和TCP
服務器能夠類比爲Web
服務和HTTP
服務器
監聽HTTP 來實現Web 服務
監聽TCP 來實現RPC 服務
就這樣理解吧
這樣就是成功啓動了
也就是啓動HTTP
服務器XD
新開一個終端來建立新容器
docker run -it --rm -p 9501:80 -v E:\WWW\swoft-http:/var/www/swoft swoft/swoft /bin/bash複製代碼
這裏端口改爲9501, 由於本地開發環境已經用了80了:b
php bin/swoft server:start 複製代碼
由於在以前把自動開啓TCP 服務器禁用了
因此顯示Disabled
這樣也就是成功了!
訪問一下http://127.0.0.1:9501/
看下有沒有問題
沒問題的話, 能夠看下官方提供的RPC demo http://127.0.0.1:9501/rpc/call
phper在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那裏入手去提高,對此我整理了一些資料,包括但不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨須要的能夠免費分享給你們 ,須要請戳這裏
最後,祝全部你們在面試中過關斬將,拿到心儀offer。若是想與一羣3-8年資深開發者一塊兒交流學習的話,須要點擊這裏