Mix PHP V2.2 发布,与 go-micro 深度集成的 PHP 微服务开发框架
Mix PHP 是一个基于 Swoole 开发的高性能 PHP 框架,从 2017 年开始经过多年发展收获了很多中小型团队的支持,框架版本也经历了多个版本的迭代:
- V1.*: 基于 Swoole 的常驻内存型 PHP 高性能框架
- V2.0: 基于 Swoole 的 FastCGI、常驻内存、协程三模 PHP 高性能框架
- V2.1: 基于 Swoole 4.4+ 单线程协程 PHP 框架
- V2.2: 基于 Swoole 4.4+ 单线程协程 PHP 微服务框架 🆕
微服务开发
本次版本更新主要是增加微服务开发相关的组件与开发骨架,从上一次 Mix V2.1 非常激进的切换为单线程协程后 [为何从 Reactor+Manager+Worker 多进程改为单线程协程],Mix V2.2 在微服务方面也非常激进的选择了和其他 Swoole 框架截然不同的路径:与 go-micro 微服务生态深度集成,借用 golang 微服务生态的治理工具
Mix Micro
在很多 Swoole 框架自建微服务生态的时候,我认为微服务生态要是能与主流生态直接无缝通信可能更具有实用价值,Mix 从 V2.1 开始完全切换为单线程协程,这一特性非常适合微服务的打造,同时 Mix 一直都是 Go 风格框架,因此我决定将微服务融入 go-micro 生态,让 Mix 框架用户能与 go-micro 编写的微服务直接代码级无缝通信,并且能直接使用 go-micro 运行时工具包的网关、代理、Dashboard 等全部微服务治理基础设施,让 PHP 与 Go 能一起开发高性能微服务,取长补短。
- Mix Micro:动态语言,开发效率高,view 模板渲染更加适合,单线程协程没有锁的烦恼,try/catch 不用忍受 go 大量 err 处理的烦恼,更加完善的 OOP 让业务封装更加人性。
- Go Micro:静态语言,编译时即可过滤大量代码问题,CPU 密集型计算更加擅长,原生的协程库生态更加丰富。
基于以上 Mix 打造了可独立使用的 Mix Micro 同时还提供了包含大量代码的 Mix Micro Skeleton 微服务开发骨架。
Mix gRPC
在 gRPC 方面,由于 phpgrpc 官方的局限性导致 PHP 在 gRPC 中一直都是充当 Client 的角色,Mix gRPC 试图改变这一现状,我们提供了 grpc 官方类似的 protoc 插件,能根据 .proto 直接生成基于 Swoole 的 PHP gRPC Server/Client 代码 (官方只能生成 Client 代码),使 PHP 具有与 go-micro 具有同样的微服务编程体验。
- Mix gRPC:基于 Swoole 协程的 gRPC 类库,包含 protoc 代码生成器、服务器、客户端
更新详情
Added
- 增加 mix/micro 与 go-micro 生态深度集成的 php 微服务开发框架
- 增加 mix/grpc 类库,包含 protoc 代码生成器、服务器、客户端
- 增加 mix/tracing、mix/tracing-zipkin 符合 opentracing 标准的调用链追踪库
- 增加 mix/micro-hystrix 微服务熔断器
- 增加 mix/micro-etcd 基于 Etcd 的服务注册中心、配置中心
- 增加 mix/monolog 取代之前自主研发的日志库,并扩展了控制台打印的功能
Improved
- 强化 mix/json-rpc 支持微服务调用
- 修改 mix/database、mix/redis、mix/sync-invoke 的连接池为内置,使用更加简单
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD
一.相关介绍 Dockerfile:关于Dockerfile的使用说明,我在文章《 让.NetCore程序跑在任何有docker的地方》中有说到,这里不在赘述,需要的可以先看下,本文主要介绍Jenkinsfile结合dockerfile配合使用,自动构建.NetCore应用程序。 Jenkinsfile :Jenkinsfile 是 Jenkins 2.x 或更高版本核心特性 Pipeline(流水线) 的脚本,或者说对于Jenkins 流水线的定义被写在一个叫Jenkinsfile的文本文件中,该文件可以被提交到项目的源代码的控制仓库。这是"流水线即代码"的基础; 将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。 创建 `Jenkinsfile`并提交它到源代码控制中提供了以下几个好处: 自动地为所有分支创建流水线构建过程并拉取请求。 在流水线上代码复查/迭代 (以及剩余的源代码)。 对流水线进行审计跟踪。 该流水线的真正的源代码 , 可以被项目的多个成员查看和编辑。 Jenkinsfile 能使用两种语法进行编写,分别是“声明式”和“脚本化”,二者语法都是 DS...
- 下一篇
ThinkSNS+ 2.3 更新
ThinkSNS+/ThinkSNS-plus 功能---动态、圈子、资讯、问答、即时聊天话题、钱包、打赏、排行榜、音乐FM、找人、签到、积分、认证 客户终端---PC、H5、Android APP、iOS APP 技术---服务端框架:Laravel;服务端开发语言:PHP; ios端开发语言:swift+Objective-C;Android端开发语言:JAVA 社交电商软件系统ThinkSNS+ 一、后端更新说明 修复Laravel框架更新导致依赖包加载失败 废弃不能维护的依赖包plus-message-bundle 修复极光属性调用 更换一些不能更新的依赖包如:bootstrap、plus-message-bundle 优化重复用户名提示 优化系统保留昵称的提示语 修复编辑用户没有过滤预留昵称 添加用户时增加用户组选择 修复被上传文件的大小验证 后台圈子/帖子列表排序修改 二、PC更新说明 修复pc版第一点击查看大图屋反应的问题 修复个人主页元素错位 匿名回答的问题错误 修复参与话题的人错误 修复pc端转发的资讯显示内容被删除 三、H5更新说明 修复资讯分类列表过滤置顶数据,且...
相关文章
文章评论
共有0条评论来说两句吧...