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

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

如何搭建微服务?

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

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

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

拉Docker 镜像

docker pull swoft/swoft 复制代码

非常的简单

f713d91b154e7b6623369fcc3dfccdf0.png

这样就是成功了

为了方便理解

我们把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方便调试

c5f63c788c2ec14f1a06608a9810821e.png

这样就是成功启动了

启动RPC 服务

php bin/swoft rpc:start复制代码

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

有的同学RPC 和TCP 的关系可能还没弄清楚

这里RPC 服务和TCP 服务器可以类比为Web 服务和HTTP 服务器监听HTTP 来实现Web 服务

监听TCP 来实现RPC 服务

就这样理解吧

daf8b4df878aaac6976b61e2ca024af0.png

这样就是成功启动了

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

60a9b14d2243d5f31dea3ea9ea516845.png

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

所以显示Disabled

这样也就是成功了!

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

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

375e8fb9252ddc925f36a558d08086ad.png

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

514dc415b625d5c3caf9247f8db64a2f.png

ad2c2023d6155765f5c605cd0925c7a4.png

1eec947802ecbcab9d8a2e69cd819bcc.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值