Files

99 lines
2.2 KiB
Markdown

# Kenaito Config Center Perl Client
[English](README_EN.md) | 中文
Perl 客户端 SDK,适用于 Perl 5.16+ 项目。
## 功能特性
- 从配置中心拉取应用配置
- 定时同步配置变更
- 支持配置变更回调监听
- 本地文件缓存(配置中心不可用时降级)
## 安装
### 从本地安装
```bash
cd kenaito-conf-perl-client
cpanm .
```
### 开发模式(符号链接)
在 demo 项目中添加 lib 路径:
```perl
use lib '/path/to/kenaito-conf-perl-client/lib';
```
## 使用
```perl
use Kenaito::Conf::Config;
use Kenaito::Conf::Client;
my $cfg = Kenaito::Conf::Config->new(
base_url => 'http://localhost:8080',
app_name => 'my-app',
env => 'daily',
version => 'latest',
token => '',
sync_interval => 10,
cache_dir => '.',
);
my $client = Kenaito::Conf::Client->new(config => $cfg);
# 监听配置变更
$client->on_change(sub {
my ($changed) = @_;
for my $k (keys %$changed) {
print "config changed: $k = $changed->{$k}\n";
}
});
# 启动客户端(拉取配置)
$client->start();
# 获取配置
my $value = $client->get('database.host');
my $all = $client->get_all();
# 手动同步一次
$client->sync_once();
# 停止
$client->stop();
```
## 配置项
| 参数 | 说明 | 默认值 |
|----------------|------------|-------------------------|
| `base_url` | 配置中心地址 | `http://localhost:8080` |
| `app_name` | 应用名称 | (必填) |
| `env` | 环境标识 | `dev` |
| `version` | 配置版本 | `latest` |
| `token` | 应用 Token | 空 |
| `sync_interval`| 同步间隔(秒) | `60` |
| `ignore_global`| 忽略全局配置 | `0` |
| `cache_dir` | 缓存目录 | `.` |
## 依赖
- Perl 5.16+
- HTTP::Tiny
- JSON::PP
## Demo
```bash
cd kenaito-conf-perl-client-demo
KENAITO_BASE_URL=http://localhost:8080 \
KENAITO_APP_NAME=kenaito-springboot-demo \
KENAITO_ENV=daily \
perl app.pl
```