2024-11-30

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

hyperf配置中心etcd:如何正确获取string类型配置值?

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类型配置值?的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/1120565.html

发表回复

Your email address will not be published. Required fields are marked *