mix/micro
Composer 安装命令:
composer require mix/micro
包简介
PHP microservice development framework deeply integrated with go-micro ecology
关键字:
README 文档
README
与 go-micro 生态深度集成的 php 微服务开发框架
PHP microservice development framework deeply integrated with go-micro ecology
安装
要求:
- Swoole >= 4.5.0: https://wiki.swoole.com/#/environment
composer require 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 微服务开发骨架。
支持的服务器
支持的注册中心、配置中心
支持的网关
- Micro v1, v2
其他微服务治理组件
使用
创建一个 gRPC 服务器
详细的 gRPC 服务编写请查看:
$server = new \Mix\Grpc\Server('0.0.0.0'); // 默认会随机分配端口,也可以指定 $server->register(SayService::class);
创建一个注册中心
$registry = new \Mix\Micro\Etcd\Registry('http://127.0.0.1:2379/v3');
创建一个配置中心
$config = new \Mix\Micro\Etcd\Config('http://127.0.0.1:2379/v3'); $config->listen($eventDispatcher); // PSR-14 Event Dispatcher
执行一个微服务
启动后会自动监听 SIGINT, SIGTERM, SIGQUIT 信号,自动优雅停止,如果想自己处理信号,传入 Micro::signal(false) 配置
use Mix\Micro\Micro; Micro::newService( Micro::server($server), Micro::registry($registry), Micro::config($config), Micro::logger($logger), // PSR-3 Logger Micro::version('latest'), Micro::metadata(['foo' => 'bar']) )->run();
执行后日志打印:
[2020-05-21 21:01:18] API.INFO: Server started [0.0.0.0:51438] [2020-05-21 21:01:18] API.INFO: Register service [php.micro.grpc.greeter-2938109e-9b63-11ea-80bd-000057bdb82e]
启动后的微服务可使用 Micro 工具包 API Gateway、Web Dashboard、Web Proxy 等多种微服务管理工具,也可在 PHP 代码中使用 Mix gRPC 的 Client 直接调用 go-micro 编写的微服务。
License
Apache License Version 2.0, http://www.apache.org/licenses/
mix/micro 适用场景与选型建议
mix/micro 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 174 次下载、GitHub Stars 达 19, 最近一次更新时间为 2020 年 05 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「micro」 「Microservice」 「mix」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 mix/micro 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mix/micro 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 mix/micro 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Helper plugin for Laravel Mix in Craft CMS templates
Библиотека для реализаций паттерна Pub/Sub
Библиотека для реализаций паттерна Pub/Sub
Implementation of the transactional outbox pattern on top of rekalogika/domain-event
Anax htmlform module.
DI, IoC container, reference spring bean
统计信息
- 总下载量: 174
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 19
- 点击次数: 9
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2020-05-20