竹笋

首页 » 问答 » 灌水 » MixPHPV22发布,与go
TUhjnbcbe - 2020/11/29 3:36:00
中科治疗白癜风有疗效 http://m.39.net/pf/a_4445034.html

MixPHP是一个基于Swoole开发的高性能PHP框架,从年开始经过多年发展收获了很多中小型团队的支持,框架版本也经历了多个版本的迭代:

V1.*:基于Swoole的常驻内存型PHP高性能框架

V2.0:基于Swoole的FastCGI、常驻内存、协程三模PHP高性能框架

V2.1:基于Swoole4.4+单线程协程PHP框架

V2.2:基于Swoole4.4+单线程协程PHP微服务框架

微服务开发

本次版本更新主要是增加微服务开发相关的组件与开发骨架,从上一次MixV2.1非常激进的切换为单线程协程后[为何从Reactor+Manager+Worker多进程改为单线程协程],MixV2.2在微服务方面也非常激进的选择了和其他Swoole框架截然不同的路径:与go-micro微服务生态深度集成,借用golang微服务生态的治理工具

MixMicro

在很多Swoole框架自建微服务生态的时候,我认为微服务生态要是能与主流生态直接无缝通信可能更具有实用价值,Mix从V2.1开始完全切换为单线程协程,这一特性非常适合微服务的打造,同时Mix一直都是Go风格框架,因此我决定将微服务融入go-micro生态,让Mix框架用户能与go-micro编写的微服务直接代码级无缝通信,并且能直接使用go-micro运行时工具包的网关、代理、Dashboard等全部微服务治理基础设施,让PHP与Go能一起开发高性能微服务,取长补短。

MixMicro:动态语言,开发效率高,view模板渲染更加适合,单线程协程没有锁的烦恼,try/catch不用忍受go大量err处理的烦恼,更加完善的OOP让业务封装更加人性。

GoMicro:静态语言,编译时即可过滤大量代码问题,CPU密集型计算更加擅长,原生的协程库生态更加丰富。

基于以上Mix打造了可独立使用的MixMicro同时还提供了包含大量代码的MixMicroSkeleton微服务开发骨架。

MixgRPC

在gRPC方面,由于phpgrpc官方的局限性导致PHP在gRPC中一直都是充当Client的角色,MixgRPC试图改变这一现状,我们提供了grpc官方类似的protoc插件,能根据.proto直接生成基于Swoole的PHPgRPCServer/Client代码(官方只能生成Client代码),使PHP具有与go-micro具有同样的微服务编程体验。

MixgRPC:基于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的连接池为内置,使用更加简单

看完本文有收获?点赞、分享是最大的支持!

预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: MixPHPV22发布,与go