会话管理 轻量php框架_构建 PHP 微服务生态

近年来的业界架构演进来看,微服务已经逐渐成为趋势。从这张图可以看到,在不同的行业,发布服务的时间间隔各不相同,互联网行业每周发布的占比最高,但是其它行业也有逐渐赶上的趋势。

cc352c5fcff78b6f402491e90a83c244.png

伴随着微服务架构的这种快速发展节奏,各种开发语言各种类型的微服务开发框架相继出现,我分析了一下当前各家使用微服务框架的情况,可以看到主要分为四种模式:

  • 无服务治理类:gRPC、brpc 为代表
  • 单语言带服务治理类:Dubbo、Spring Cloud 为代表,主要适用于 Java 语言
  • 多语言带服务治理类:TARS
  • Service Mesh:SideCar 模式,仍在发展成熟期

48cce0102cddd69d9e5ba819f2934239.png

这其中,TARS 在通信框架的基础上支持服务治理能力,同时支持多种编程语言,算是比较另类的选择。讲到这里,我们可以来看看它具体支持怎样的治理能力,在此之前,先了解一下微服务架构是怎样的。

从微服务整体架构上看,它主要分为:接入层、网关层、业务服务层、支持服务层和基础设施层。除此之外,非常重要而又容易被忽略的还有:微服务开发框架、持续交付流水线、端到端工具链、工程实践与规范这些构成整个微服务架构体系的部分,它们都在微服务的架构中发挥着非常重要的作用。

2d9ac8b6a56290812b8cbb5b93eb9f40.png

TARS 整体可以分为运营、平台、通信框架、公共组件与统一协议几个大块,用于支持上述微服务架构层次。

简单来讲,运营平台上,TARS 可以支持不同语言服务的管理和运营,同时也支持页面级别服务的创建和发布;而在公共组件上,TARS 提供了非常多强大的公共组件来负责不同的功能,包括日志组件、监控组件、主控组件与配置组件等;统一协议方面,TARS 本身自带的二进制协议,非常适合高性能的场景,首先这个协议语言无关,自带接口描述,同时还有工具进行代码转换,可以大大提高开发效率。

聚焦到 TARS-PHP 上,作为Tars在PHP语言的解决方案,设计的时候主要考虑如下四个方面:

  • 功能完善:对标现有 C++、Java 与 NodeJS 体系功能
  • 灵活:论灵活,谁与 PHP 争锋?
  • 轻量:用最轻量的设计,点到即止,即插即用
  • 高效:插上 Swoole 协程的翅膀,不得不飞

整个框架主要分为四个部分:

  • TARS-CLIENT
  • TARS-SERVER
  • TARS-EXT 扩展
  • 代码生成工具

在过去的一年中,TARS-PHP 主要在丰富现有功能、构建更加开放的体系、引入 DevOps 的效率、更好地服务社区四个方面发力。

从 TARS-SERVER 功能层面来讲,TARS-PHP 新增了 WebSocket Server 和 PB SERVER,使得现在一个服务模板,能够实现多达五种不同的服务

d31f8f6bdbe6b26cf7c66bf0827aff69.png

通过使用 WebSocket Server,用户可以有效扩展 Swoole 功能,它支持多个端口、自定义命令和非常灵活化的 FD 存储。

PB Server 构建了一个 gRPC 服务,这个服务部署在 TARS 平台上,参与 TARS 平台寻址,受 TARS 平台管理。这个服务使用 gRPC on Http/2 作为网络通讯协议,使用 Protobuf 作为编码协议,可以和其它 PB Client 协同工作。

开发效率上,我们也针对 PB Client 做了优化,开发者同样可以通过我们提供的代码自动化生产工具,节约开发时间。

在 TARS-PHP 与平台更好地结合方面,我们实现了针对 PHP 服务的专有特性监控,它可以监控 Swoole 的 worker 数量、TIME_WAIT 等网络状态个数与 Swoole 中每个 worker 占用的内存情况等数据,让开发者更了解自己的服务。

同时,新增的自定义路由功能,也赋能了现有的 HTTP SERVER,通过引入 lumen 引擎的方式,现在的路由功能也更加强大。

在日志方面,借助 monolog 的能力,我们与 ELK 也进行了结合。简单的配置,就可以让日志入 ELK,更加方便我们进行一些 debug 或是后续的数据挖掘。

为了构建 TARS-PHP 的开放体系,我们引入了 Client & Server filters,它可以让开发者更加方便地在请求前后添加自己的代码。同时我们也开放了 TARS 协议中,向 Context 上下文写入的能力,使得分布式追踪唾手可得。

而为了让 PHP 开发者能够更多地使用 TARS,同时降低自己的迁移成本,TARS-PHP 现在也与 Laravel、ThinkPHP、Yii2、SWOFT 与 Phalcon 进行了整合,后续还将重点接入 Hyperf 与 easyswoole 等业界优秀的框架。通过接入 TARS,相当于赋能了服务打包、云配置与 HTTP/TARS 双协议,又能保持原有的开发框架,一举两得。

63f57fe5f7c3de1360accae9a9253f43.png

在 DevOps 方面,TARS 提供了官方的 Docker 镜像,让开发者能够一键搭建开发环境。而在持续集成上,我们也提供了基于 Jenkins 和 TARS 平台 API 的自动构建方案,让你的代码提交到测试到部署,成为一条龙

为了让开发者能够更快地使用 TARS,我们也放出了一个使用 TARS 的 HTTP、TCP 与 PB 在内的多种 Server 类型的弹幕服务,存储也涉及到了 Redis 和 MySQL,可以让开发者更容易在自己的项目里把 TARS 跑起来。

2551a50064496a343abd9b6ce4f6088e.png

TARS-PHP 的开源之路刚刚起步,为了解决文档问题,我们也不断地完善现有的 Gitbook,降低开发者的使用门槛。

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:TARS-PHP、分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家 ,需要请戳这里链接 或者 知乎专栏
PHP7进阶架构师​zhuanlan.zhihu.com
f1e2a19f86f68fd3a80d15b80599ca1e.png
来源:https://www.oschina.net/news/108987/tars-php-the-road
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值