ZBLOG

- !READWRITE_SPLITTING YAML在YAML语法中是什么作用

在 YAML 语法中,!READWRITE_SPLITTING 是一个 自定义类型标签(Tag),它的核心作用是标识该配置节点需要被解析为 ShardingSphere 框架中定义的读写分离规则(ReadwriteSplittingRule 类)。以下是详细解释:


1. YAML 标签(Tag)的作用

  • ! 前缀:表示这是一个自定义类型,而非 YAML 原生数据类型(如字符串、数字等)。
  • READWRITE_SPLITTING:是 ShardingSphere 内部约定的标识符,对应框架的读写分离规则实现类。
  • 功能:相当于告诉 YAML 解析器:“这个节点的内容需要被反序列化为 ReadwriteSplittingRule 类型的对象”。

2. ShardingSphere 中的具体行为

当 ShardingSphere-Proxy/JDBC 加载配置文件时:

  • 步骤1:YAML 解析器遇到 !READWRITE_SPLITTING,会调用 ShardingSphere 的规则构造器。
  • 步骤2:将后续的键值对(如 dataSourceGroupsloadBalancerName)映射到 ReadwriteSplittingRule 类的属性上。
  • 结果:生成一个内存中的读写分离规则对象,用于后续 SQL 路由。

3. 对比原生 YAML

   # 原生 YAML(普通键值对)
   rule_name: READWRITE_SPLITTING

   # ShardingSphere YAML(带类型标签)
   - !READWRITE_SPLITTING
       dataSourceGroups: ...

前者只是一个字符串值,后者会被框架转换为具体的规则对象。


⚠️注意事项

  • 严格依赖框架支持
    如果自行编写 YAML 工具解析该文件,没有 ShardingSphere 的类定义时,!READWRITE_SPLITTING 会被视为普通字符串。
  • 与其他规则的并列关系
    在 ShardingSphere 中,多个规则需用列表形式(以 -开头)并列配置:
rules:
- !READWRITE_SPLITTING     # 读写分离规则
    ...
- !SHARDING                # (可选)分片规则
    ...

💡总结

YAML片段 实际作用
!READWRITE_SPLITTING ShardingSphere将其实例化为读写分离规则对象,后续子项是该规则的配置参数。

这种设计使得配置文件既能保持人类可读性(YAML),又能精确绑定到代码中的复杂对象模型。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23577

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?