muqiuren / nacos-php
nacos的php客户端
v1.1.0
2024-01-10 09:03 UTC
Requires
- php: >=7.1
- ext-json: *
- guzzlehttp/guzzle: ^7.7
- monolog/monolog: ^2.9
This package is auto-updated.
Last update: 2024-11-11 10:05:21 UTC
README
最近需要用到nacos,项目是php编写的,看了很多开源的轮子,要么不支持username&password模式,要么就是深度集成到框架中,要么就是各种乱七八糟的错误,所以打算自己接入nacos。
什么是Nacos
Nacos的open api
特点
- 简单易用
- 支持username&password鉴权模式
- 支持调用所有Nacos Open Api接口
- 后续积极开发支持
安装
composer require muqiuren/nacos-php
使用
- 获取配置
use Hatch\Nacos\NacosClient; $options = [ // nacos服务端地址 'host' => '127.0.0.1', // nacos服务端端口 'port' => 8848, // 命名空间id 'namespace_id' => '1e7b3de6-7edb-4329-9184-46582480063b', // 配置id 'data_id' => 'php_env_config', // 配置组 'group' => 'test', // nacos用户名 'username' => 'admin', // nacos密码 'password' => 'admin', ]; $client = new NacosClient($options); // 获取配置 $conf = $client->configs->get(); var_dump(conf);
- 监听配置
use Hatch\Nacos\NacosClient; $options = [ // nacos服务端地址 'host' => '127.0.0.1', // nacos服务端端口 'port' => 8848, // 命名空间id 'namespace_id' => '1e7b3de6-7edb-4329-9184-46582480063b', // 配置id 'data_id' => 'php_env_config', // 配置组 'group' => 'test', // nacos用户名 'username' => 'admin', // nacos密码 'password' => 'admin', // 自动保存的文件地址 'save_config_path' => '.env', ]; $client = new NacosClient($options); // 启动监听,会阻塞当前进程 $client->configs->listen(function($newMd5) { var_dump($newMd5); });
更多示例请看example目录提供的调用示例
TODO
- 增强异常处理与容错
- 增强日志输出
- Open Api接口对接
- 提供更多示例
- 接入单元测试
OpenApi接口支持列表
配置中心
- 获取配置
- 监听配置
- 发布配置
- 删除配置
- 查询历史版本
- 查询历史版本详情
- 查询配置上一版本信息
服务发现
- 注册实例
- 注销实例
- 修改实例
- 查询实例列表
- 查询实例详情
- 发送实例心跳
- 创建服务
- 删除服务
- 修改服务
- 查询服务
- 查询服务列表
- 查询系统开关
- 修改系统开关
- 查看系统当前数据指标
- 查看当前集群Server列表
- 查看当前集群leader
- 更新实例的健康状态
命名空间
- 查询命名空间列表
- 创建命名空间
- 修改命名空间
- 删除命名空间