陈奇网络工作室

微服务架构:构建PHP微服务生态

建设工作站服务器

诞生于2014年的“微服务体系结构”,其思想通过Martin Fowler阐述后,近年来持续受到重视,理论和相关实践不断发展,如今,一谈到架构,必然会想到微服务体系结构

随着微服务架构的快速发展,各种开发语言的各种类型的微服务开发框架层出不穷,在最近召开的PHPCon大会上,开源微服务框架TARS核心开发集团的梁晨梁晨也是TARS-PHP项目的主要负责人,以下是本次演讲全过程的梳理。

那么,在接下来的45分钟里,我想谈谈TARS作为微服务平台有什么好处。 此外,我们还想看看TARS-PHP核心发展集团在这一年中,努力将TARS-PHP演进并融入PHP生态,对整个TARS微服务生态有何意义。

由于近年来行业架构的演进,微服务逐渐成为一种趋势。 从这张图可以看出,不同行业发布服务的时间间隔不同,互联网行业每周发布的比例最高,但其他行业也有逐渐赶上的趋势。

可以看到具体的发表数据。 63%%u7684企业平均每月发布一次。 如何将系统迁移到微服务架构? 目前,近10%的u7684人选择了原生框架,如Dubbo,近50%的u7684人选择了云原生架构,同时30%的u5de6右边的人选择了Weblogic WEBSPHERE等其中,51% %u8003考虑了转型,实施了15% %u5DF2。

通过这些数据,可以看出微服务架构目前已成为主流。

随着这种微服务架构快速发展的步伐,各种开发语言的各种类型的微服务开发框架层出不穷。 分析目前各家使用微服务框架的情况,可以看出主要分为四种模式。

无服务治理类:由gRPC、brpc代表

带单一语言服务的治理类:以Dubbo、Spring Cloud为代表,主要应用于Java语言

带多语言服务的治理类: TARS

服务消息: sidecar模式还处于成熟期

其中TARS基于通信框架支持服务治理能力,且同时支持多种编程语言是相对替代的选择。 在这里,我们来看看具体支持什么样的治理能力。 在此之前,让我们先了解一下微服务体系结构是什么样的。

从微服务总体结构来看,主要分为接入层、网关层、业务服务层、支撑服务层和基础设施层。 此外,非常重要且容易被忽略的是微服务开发框架、连续交付流水线、端到端工具链、工程实践和规范等组成整个微服务架构体系的部分。

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

简而言之,在操作平台上,TARS支持不同语言服务的管理和操作,同时也支持页面级服务的创建和发布。 另一方面,在通用组件中,TARS提供了一个非常强大的通用组件,负责各种功能,包括日志组件、监视组件、主组件和配置组件。 在统一协议方面,TARS自身具有的二进制协议非常适合高性能场景。 首先,与此协议语言无关,它具有接口描述,同时还有进行代码转换的工具,可以大大提高开发效率。

专注于TARS-PHP,作为Tars在PHP语言中的解决方案,设计时主要考虑了以下四个方面。

功能完善:瞄准现有c、Java和NodeJS体系结构的功能

灵活性:关于灵活性,谁在和PHP竞争?

轻量:最轻的设计,点到点,即插即用

高效:插上Swoole协和式飞机的翅膀,必须飞翔

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

目标客户端

目标服务器

目标扩展

代码生成工具

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

TARS-PHP从TARS-SERVER的功能方面添加了WebSocket Server和PB SERVER。 这样,一个服务模板最多可以实现五个不同的服务。

通过WebSocket Server,用户可以有效地扩展支持多个端口并可定制的Swoole功能

命令和非常灵活的软盘存储。

PB Server部署在TARS平台上,参与TARS平台寻址,并构建由TARS平台管理的gRPC服务。 该服务可以使用gRPC on Http/2作为网络通信协议,使用Protobuf作为编码协议与其他Pb客户端协作。

在开发效率方面,也针对PB Client进行了优化,开发者也可以通过提供的代码使生产工具自动化,节约开发时间。

在更好地结合TARS-PHP和平台方面,我们实现了对PHP服务的独特特性监控。 它可以监控Swoole工作器的数量、网络状态的数量(如TIME_WAIT )和每个Swoole工作器占用的内存情况等数据,以便开发人员更好地了解自己的服务。

另外,新添加的定制路由功能通过使现有的http服务器工作并部署lumen引擎,当前的路由功能也变得更强大。

在日志中,借助monolog的能力,还与ELK进行了合作。 通过简单的结构,可以将日志放入ELK,可以更容易地进行调试和后续的数据挖掘。

为了构建TARS-PHP的开放系统,引入了Client Server filters,使开发人员更容易在请求前后添加自己的代码。 它还开放了TARS协议写入上下文的功能,便于分布式跟踪。

为了使PHP开发人员能够更多地使用TARS并降低迁移成本,TARS-PHP目前已与Laravel、ThinkPHP、Yii2、SWOFT、Phalcon集成,包括Hyperf和easyswoole等通过访问TARS,实现服务器打包、云配置和与HTTP/TARS的双协议,可以维护现有的开发框架,一举两得。

在DevOps中,TARS提供了官方的docker镜像,允许开发人员一键创建开发环境。 即使是持续集成,我们也会提供基于Jenkins和TARS平台API的自动生成方案,确保您的代码从测试到部署始终如一。

为了帮助开发人员更快地使用TARS,我们还发布了许多服务器类型的弹幕服务,包括使用TARS的HTTP、TCP和PB。 存储还涉及Redis和mysql,使开发人员能够更轻松地在自己的项目中运行TARS。

TARS-PHP开源之路才刚刚开始,为了解决文档问题,我们不断完善现有的Gitbook,降低开发人员的使用门槛。

在TARS-PHP开源一年左右的时间里,我们的项目和衍生项目超过10个,GitHub repo commit超过200个,微信和QQ群累计开发者社区数为800个,package 希望大家也参加TARS-PHP的建设。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3