海印网
海印网

Hyperf配置中心Etcd:如何正确获取String类型配置值?

admin数码00

Hyperf配置中心Etcd:如何正确获取String类型配置值?-第1张图片-海印网

hyperf 配置中心使用 etcd 获取不到 string 值问题

在配置 hyperf 使用 etcd 作为配置中心时,遇到了如下问题:

$ttl = config('hb.app.ttl'); // 1800
$mode = config('hb.app.mode'); // null

登录后复制

原因分析

经过代码检查,发现 hyperf configetcd 驱动默认采用 json 打包器对 etcd 中的数据进行打包。因此,在 etcd 中保存的 string 类型数据,在获取时需要以 json 格式进行解析。

解决方案

修改 hyperf 配置中心配置,将数据打包器从 jsonpacker 修改为 phppacker:

'packer' => hyperfutilspackerphppacker::class,

登录后复制

示例:

$ttl = config('hb.app.ttl'); // 1800
$mode = config('hb.app.mode'); // "fast"

登录后复制

进一步优化

为了更好地支持不同数据类型,可以考虑在 etcd 中使用类似 type 字段来指示数据类型,并在代码中进行相应处理。

以上就是Hyperf配置中心Etcd:如何正确获取String类型配置值?的详细内容,更多请关注其它相关文章!

Tags: 中心类型

Sorry, comments are temporarily closed!