转载

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

Swoft 框架是首个基于Swoole 原生协程的新时代 PHP高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM。

如何搭建微服务?

首先确保已经可以正确搭建Swoft

不清楚的可以查看 Swoft 官方文档

鉴于每个人的开发环境都不同

这里选用官方 Docker 作为开发环境

Docker下载地址>>>

拉Docker 镜像

docker pull swoft/swoft 复制代码

非常的简单

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

这样就是成功了

为了方便理解

我们把swoft 复制两份

命名为 swoft-rpcswoft-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 方便调试

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

这样就是成功启动了

启动RPC 服务

php bin/swoft rpc:start复制代码

RPC 服务只需要单独启动 TCP 服务器

有的同学 RPCTCP 的关系可能还没弄清楚

这里 RPC 服务和 TCP 服务器可以类比为 Web 服务和 HTTP 服务器

监听HTTP 来实现Web 服务

就这样理解吧

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

这样就是成功启动了

启动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 复制代码

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

因为在之前把自动开启TCP 服务器禁用了

所以显示Disabled

这样也就是成功了!

访问一下 http://127.0.0.1:9501/ 看下有没有问题

没问题的话, 可以看下官方提供的RPC demo http://127.0.0.1:9501/rpc/call

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

phper在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家 ,需要 请戳这里

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶

最后,祝所有大家在面试中过关斩将,拿到心仪offer。 如果想与一群3-8年资深开发者一起交流学习的话, 需要 点击这里

原文  https://juejin.im/post/5dc0f11f6fb9a04a5c44e157
正文到此结束
Loading...