PHPackages                             kylin987/webman-config-center-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. kylin987/webman-config-center-client

ActiveLibrary

kylin987/webman-config-center-client
====================================

Lightweight, cache-first configuration client for Webman.

v1.0.6(today)02↑2900%MITPHPPHP &gt;=8.1

Since Jul 23Pushed todayCompare

[ Source](https://github.com/kylin987/webman-config-center-client)[ Packagist](https://packagist.org/packages/kylin987/webman-config-center-client)[ RSS](/packages/kylin987-webman-config-center-client/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (4)Versions (8)Used By (0)

kylin987/webman-config-center-client
====================================

[](#kylin987webman-config-center-client)

面向 Webman 项目的轻量配置中心客户端。

它负责从 Config Center 服务端拉取配置，校验内容格式，然后写入业务项目本地配置目录。远端异常时会保留本地旧配置，避免因为配置中心短暂不可用导致业务 worker 退出。

配套服务端仓库：[kylin987/webman-config-center](https://github.com/kylin987/webman-config-center)

安装
--

[](#安装)

```
composer require kylin987/webman-config-center-client
```

安装后，Webman 会自动复制插件配置到：

```
config/plugin/kylin987/config-center/

```

同时会创建配置落地目录：

```
config/cc/
├── .gitignore
└── app.php

```

其中 `config/cc/app.php` 是占位配置，保证 `config('cc.*')` 这类读取方式在远端配置同步前也可用；其他同步生成的配置文件默认不会提交到 git。

主要配置文件是：

```
config/plugin/kylin987/config-center/app.php
config/plugin/kylin987/config-center/config.php
config/plugin/kylin987/config-center/listeners.php
config/plugin/kylin987/config-center/process.php

```

配置
--

[](#配置)

打开 `config/plugin/kylin987/config-center/config.php`，根据项目实际情况修改服务端地址、客户端账号密码、轮询和日志参数。

插件默认开启。Webman 启动时会自动启动一个 `config-center` 进程：

```
php start.php start
```

如果需要关闭自动同步进程，修改：

```
// config/plugin/kylin987/config-center/app.php
return [
    'enable' => false,
];
```

常用环境变量：

```
CONFIG_CENTER_ENDPOINT=http://config-center.example.com/
CONFIG_CENTER_USERNAME=your-client-username
CONFIG_CENTER_PASSWORD=your-client-password
CONFIG_CENTER_CONFIG_ROOT=/app/config/cc
CONFIG_CENTER_STATE_DIR=/app/runtime/config-center
CONFIG_CENTER_POLL_INTERVAL=60
CONFIG_CENTER_POLL_JITTER_SECONDS=30
CONFIG_CENTER_APPLY_SECRET=replace-with-random-secret
CONFIG_CENTER_LOG_CHANNEL=default
CONFIG_CENTER_LOG_THROTTLE_SECONDS=300
```

轮询默认带随机抖动，避免几十个客户端集中在同一秒请求服务端：

- `CONFIG_CENTER_POLL_INTERVAL=60` 表示基础轮询间隔是 60 秒。
- `CONFIG_CENTER_POLL_JITTER_SECONDS=30` 表示每次实际轮询会随机落在 30~90 秒之间。
- 如果不配置 `CONFIG_CENTER_POLL_JITTER_SECONDS`，默认取 `poll_interval` 的一半，最多 30 秒。
- 自动进程启动后会立即同步一次，方便启动后马上生成本地配置文件；后续轮询会带随机抖动。

如果需要 Redis Pub/Sub 实时通知，再额外配置：

```
CONFIG_CENTER_REDIS_URL=tcp://redis.example.com:6379
```

配置 `CONFIG_CENTER_REDIS_URL` 后，自动进程会同时做两件事：

- 按 `poll_interval` 定时轮询，作为兜底。
- 订阅 Redis Pub/Sub，服务端发布配置后立即收到通知并同步。

打开 `config/plugin/kylin987/config-center/listeners.php`，维护需要监听/同步的配置文件。

`listeners.php` 是白名单，只有声明过的配置才会被写入本地文件：

```
