teamones/etcd-discovery
最新稳定版本:0.0.4
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();
统计信息
- 总下载量: 7.35k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-02-24
