Mix PHP V2.2 發佈,與 go-micro 深度集成的 PHP 微服務開發框架

Mix PHP 是一個基於 Swoole 開發的高性能 PHP 框架,從 2017 年開始通過多年發展收穫了不少中小型團隊的支持,框架版本也經歷了多個版本的迭代:php

  • 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 多進程改成單線程協程]](https://zhuanlan.zhihu.com/p/...,Mix V2.2 在微服務方面也很是激進的選擇了和其餘 Swoole 框架大相徑庭的路徑:與 go-micro 微服務生態深度集成,借用 golang 微服務生態的治理工具git

Mix Micro

在不少 Swoole 框架自建微服務生態的時候,我認爲微服務生態要是能與主流生態直接無縫通訊可能更具備實用價值,Mix 從 V2.1 開始徹底切換爲單線程協程,這一特性很是適合微服務的打造,同時 Mix 一直都是 Go 風格框架,所以我決定將微服務融入 go-micro 生態,讓 Mix 框架用戶能與 go-micro 編寫的微服務直接代碼級無縫通訊,而且能直接使用 go-micro 運行時工具包的網關、代理、Dashboard 等所有微服務治理基礎設施,讓 PHP 與 Go 能一塊兒開發高性能微服務,取長補短。github

  • Mix Micro:動態語言,開發效率高,view 模板渲染更加適合,單線程協程沒有鎖的煩惱,try/catch 不用忍受 go 大量 err 處理的煩惱,更加完善的 OOP 讓業務封裝更加人性。
  • Go Micro:靜態語言,編譯時便可過濾大量代碼問題,CPU 密集型計算更加擅長,原生的協程庫生態更加豐富。

基於以上 Mix 打造了可獨立使用的 Mix Micro 同時還提供了包含大量代碼的 Mix Micro Skeleton 微服務開發骨架。golang

Mix gRPC

在 gRPC 方面,因爲 phpgrpc 官方的侷限性致使 PHP 在 gRPC 中一直都是充當 Client 的角色,Mix gRPC 試圖改變這一現狀,咱們提供了 grpc 官方相似的 protoc 插件,能根據 .proto 直接生成基於 Swoole 的 PHP gRPC Server/Client 代碼 (官方只能生成 Client 代碼,而且不支持協程),使 PHP 具備與 go-micro 具備一樣的微服務編程體驗。redis

  • 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 的鏈接池爲內置,使用更加簡單
相關文章
相關標籤/搜索