Swoft 框架是首个基于Swoole 原生协程的新时代 PHP高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM。
首先确保已经可以正确搭建Swoft
不清楚的可以查看 Swoft 官方文档
鉴于每个人的开发环境都不同
这里选用官方 Docker
作为开发环境
Docker下载地址>>>
docker pull swoft/swoft 复制代码
非常的简单
这样就是成功了
为了方便理解
我们把swoft 复制两份
命名为 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 服务
就这样理解吧
这样就是成功启动了
也就是启动 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年资深开发者一起交流学习的话, 需要 点击这里