KVClientConfig¶
-
class KVClientConfig¶
- Header-file:
#include <datasystem/utils/kv_client_config.h>
- Namespace:
datasystem
KV 客户端初始化配置。通过嵌套类
KVClientConfig::Builder构建, 并在KVClient::Init(const KVClientConfig &clientConfig)中传入。本配置仅覆盖客户端日志、监控与 ZMQ 相关参数,不包含
ConnectOptions中的连接选项。配置生效规则
进程内 首次 调用任意
KVClient::Init``(含无参 ``Init())时,会将当前传入的KVClientConfig快照固化为进程级配置;此后同一进程内其他KVClient实例再调用Init时会复用已固化的进程级配置,不会用后续传入配置覆盖已生效设置。首次 Init 时,单个配置项的取值优先级(仅适用于本类所管理的参数):
KVClientConfig中通过 Builder 显式设置的字段(最高);进程启动时命令行 flag(
argv)中已设置的同名字段;对应的环境变量;
代码内置默认值(最低)。
若首次
Init传入的配置未显式设置某字段,该字段按上述 2→3→4 顺序取值。后续 Init 的行为:仅检查后续传入配置中通过 Builder 显式设置的字段;未设置字段 视为未指定,不会要求与已固化快照逐字段一致,也不会用于清空已生效配置。若显式传入 字段与已固化快照存在差异(含新增字段、修改字段值),实现会记录错误日志,但
Init仍返回StatusCode::K_OK,且 不会 用新配置覆盖已生效的 flag 或日志设置。Init()与Init(const KVClientConfig &)的差异:Init()等价于传入未调用任何 Builder setter 的空KVClientConfig。若进程内首次调用为
Init(),显式配置快照为空;此后再调用Init(config)并传入 显式配置,该配置 不会 生效。若已先通过Init(config)固化了配置,后续Init()或空配置不表示清空或覆盖原配置。若需通过 Builder 指定参数,应确保进程内第一次
Init即传入目标配置。
公共函数
-
~KVClientConfig()¶
析构 KV 客户端配置对象。
-
class KVClientConfig::Builder¶
- Header-file:
#include <datasystem/utils/kv_client_config.h>
- Namespace:
datasystem
KV 客户端配置构建器,支持链式设置日志、监控和 ZMQ 相关参数。
公共函数
-
Builder()¶
构造配置构建器。
-
~Builder()¶
析构配置构建器。
-
Builder &ZmqClientIoContext(int32_t threads)¶
设置 ZMQ 客户端 IO context 数量,对应
zmq_client_io_context配置项。
-
Status Build(KVClientConfig &config) const¶
校验并构建
KVClientConfig。- 参数:
config - 传出参数,返回构建后的配置对象。
- 返回:
返回值状态码为
StatusCode::K_OK时表示构建成功,否则返回参数校验错误。