teamones/etcd-discovery
Composer 安装命令:
composer require teamones/etcd-discovery
包简介
Teamones框架Etcd服务注册和发现组件
README 文档
README
PHP版本,基于Workerman的ETCD服务注册和发现
- 支持http服务
- 支持 text 协议的 rpc 服务(测试)
- 自带熔断器
- 支持 K8S service ip 自动获取,非K8S环境自动获取本地ip
架构
安装
composer require teamones/etcd-discovery
配合 webman 框架使用说明
etcd 配置文件
.env 增加
# 当前服务注册到etcd名称 belong_system='project' # etcd服务地址 etcd_host=10.168.30.25:2379 # webman 服务端口 host_port=8080
/config/etcd.php配置
<?php return [ 'discovery' => [ 'etcd_host' => env("etcd_host", ''), 'server_name' => env("belong_system", ''), 'server_uuid' => \Webpatser\Uuid\Uuid::generate()->string, 'server_port' => env("host_port", 8080), 'discovery_name' => ['im', 'saas', 'log', 'media'], // 要发现的服务名 'log' => runtime_path() . '/logs/etcd.log', 'cache' => runtime_path() . '/logs' ] ];
etcd-go 服务进程 随着 start.php 启动
在start.php 增加以下代码
// Worker::$onMasterReload = function () 上面增加 // 拉起etcd服务 if (class_exists('teamones\process\EtcdGoServer')) { \teamones\process\EtcdGoServer::exec(); // Workerman 关闭杀死 etcd服务 worker::$onMasterStop = function () { \teamones\process\EtcdGoServer::kill(); }; }
注册 etcd process worker 进程
在 /config/process.php中增加
// etcd 对象 'etcd' => [ 'handler' => teamones\process\Etcd::class, 'count' => 1 ],
基于 http 协议 curl 服务调用
默认使用http协议
<?php use teamones\Request; $data = Request::connection() ->setHeader([ 'X-Userinfo' => request()->getXUserInfo(), // 一般需要传递用户信息 ]) ->setServerHost('im') // 请求服务名 ->setRoute('options/get_business_mode') // 路由地址 ->setMethod('POST') // 请求方式 ->request();
teamones/etcd-discovery 适用场景与选型建议
teamones/etcd-discovery 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.67k 次下载、GitHub Stars 达 10, 最近一次更新时间为 2021 年 02 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 teamones/etcd-discovery 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 teamones/etcd-discovery 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 7.67k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 23
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-02-24
