imiphp / imi-zookeeper
imi 框架 ZooKeeper 组件。imi ZooKeeper component.
v2.1.0-beta1
2022-09-02 06:55 UTC
Requires
- imiphp/imi-config-center: ~2.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ~3.4.0
- imiphp/imi: 2.1.x-dev
- imiphp/imi-fpm: 2.1.x-dev
- imiphp/imi-swoole: 2.1.x-dev
- imiphp/imi-workerman: 2.1.x-dev
- phpstan/phpstan: ~1.8.0
- phpunit/phpunit: >=9
- rector/rector: ^0.12.10
- swoole/ide-helper: ^4.8
- yurunsoft/ide-helper: ^1.2
- yurunsoft/yurun-http: ^4.3
Suggests
- ext-swoole_zookeeper: Required to use ZooKeeper in swoole
- ext-zookeeper: Required to use ZooKeeper in non-swoole
This package is auto-updated.
Last update: 2024-12-10 09:26:57 UTC
README
介绍
此项目是 imi 框架的 ZooKeeper 组件。
正在开发中,随时可能修改,请勿用于生产环境!
支持的功能:
- 配置中心
安装
PHP 扩展
-
Swoole 用户请安装 swoole-zookeeper 扩展。
-
非 Swoole 用户请安装 php-zookeeper 扩展。
本组件
本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json
中加入下面的内容:
{ "require": { "imiphp/imi-zookeeper": "~2.1.0" } }
然后执行 composer update
安装。
使用说明
配置
@app.beans
:
[ 'ConfigCenter' => [ // 'mode' => \Imi\ConfigCenter\Enum\Mode::WORKER, // 工作进程模式 'mode' => \Imi\ConfigCenter\Enum\Mode::PROCESS, // 进程模式 'configs' => [ 'zookeeper' => [ 'driver' => \Imi\ZooKeeper\Config\SwooleZooKeeperConfigDriver::class, // Swoole 驱动 // 'driver' => \Imi\ZooKeeper\Config\ZooKeeperConfigDriver::class, // 非 Swoole 驱动 // 客户端连接配置 'client' => [ 'host' => env('IMI_ZOOKEEPER_HOST', '127.0.0.1:2181'), // 主机名:端口 'timeout' => 10, // 网络请求超时时间,单位:秒 ], // 监听器配置 'listener' => [ 'timeout' => 30000, // 配置监听器长轮询超时时间,单位:毫秒 'failedWaitTime' => 3000, // 失败后等待重试时间,单位:毫秒 'savePath' => Imi::getRuntimePath('config-cache'), // 配置保存路径,默认为空不保存到文件。php-fpm 模式请一定要设置! 'fileCacheTime' => 30, // 文件缓存时间,默认为0时不受缓存影响,此配置只影响 pull 操作。php-fpm 模式请一定要设置为大于0的值! 'pollingInterval' => 10000, // 客户端轮询间隔时间,单位:毫秒 ], // 配置项 'configs' => [ 'zookeeper' => [ 'key' => 'imi-zooKeeper-key1', 'type' => 'json', // 配置内容类型 ], ], ], ], ], ]
获取配置
\Imi\Config::get('zookeeper'); // 对应 imi-zooKeeper-key1
写入配置
/** @var \Imi\ConfigCenter\ConfigCenter $configCenter */ $configCenter = App::getBean('ConfigCenter'); $name = 'imi-zooKeeper-key1'; $value = json_encode(['imi' => 'niubi']); $configCenter->getDriver('zookeeper')->push($name, $value);
社群
微信群:
打赏赞助: https://www.imiphp.com/donate.html
运行环境
版权信息
imi-zookeeper
遵循 MIT 开源协议发布,并提供免费使用。