启用了config-center配置中心。配置如下
return [
'enable' => (bool) env('ENABLE_CONFIG_CENTER', false),
'driver' => env('CONFIG_CENTER_DRIVER', 'etcd'),
'mode' => env('CONFIG_CENTER_MODE', Mode::PROCESS),
'drivers' => [
'etcd' => [
'driver' => Hyperf\ConfigEtcd\EtcdDriver::class,
'packer' => Hyperf\Utils\Packer\JsonPacker::class,
// 需要同步的数据前缀
'namespaces' => [
'/hb',
],
// `Etcd` 与 `Config` 的映射关系。映射中不存在的 `key`,则不会被同步到 `Config` 中
'mapping' => [
'/hb/app/ttl' => 'hb.app.ttl',
'/hb/app/mode' => 'hb.app.mode'
],
// 配置更新间隔(秒)
'interval' => 5,
'client' => [
'uri' => 'http://127.0.0.1:2379',
'version' => 'v3beta',
'options' => [
'timeout' => 10,
],
],
],
],
];
通过etcdctl增加配置
[root@bogon ~]# etcdctl put /hb/app/ttl 1800
OK
[root@bogon ~]# etcdctl put /hb/app/mode 'fast'
OK
[root@bogon ~]# etcdctl put /hb/app/mode "fast"
OK
[root@bogon ~]# etcdctl put /hb/app/mode 1
OK
[root@bogon ~]# etcdctl put /hb/app/mode 'fast'
OK
[root@bogon ~]# etcdctl put /hb/app/mode "fast"
OK
获取
$ttl = config('hb.app.ttl');
$mode = config('hb.app.mode');
return ['mode' => $mode, 'ttl' => $ttl, 'config' => $this->config];
结果,数值类型的获取得到,string的为null????
{
"mode": null,
"ttl": 1800,
"config": {}
}
请问这是为什么???etcdctl get是可以正常取得到值的
看源码后发现,其实string应该以json形式的数据保存再etcd中