2.32 分析用户

3.22.01.0版本dble支持单纯使用分析用户

2.32.1 分析用户配置

2.32.1.1 单纯使用分析用户功能的配置

仅需在 user.xml 文件中配置 analysisUser并指定对应的dbGroup即可。dbGroup的配置参考db.xml的章节。这里需要注意的是四种用户配置的顺序是固定的。user.xml的配置请参考user.xml章节。

<dble:user xmlns:dble="http://dble.cloud/" version="4.0">
    <managerUser name="man1" password="654321" maxCon="100"/>
    <shardingUser name="root" password="123456" schemas="testdb" readOnly="false" maxCon="20"/>
    <rwSplitUser name="rwsu1" password="123456" dbGroup="rwGroup" maxCon="20"/>
    <analysisUser name="analysisUser" password="123456" dbGroup="dbGroup3" blacklist="blacklist1" maxCon="20"/>
</dble:user>

配置注意事项:

  1. 当user.xml文件中不配置shardingUser,dble不再加载sharding.xml配置文件(即dble不具备分表分库),包括集群情况下出现sharding.xml不一致,均属于已知现象。
  2. 多个analysisUser可以引用同一个dbGroup。
  3. 被用户使用的dbGroup内的instance才会有心跳和连接池;未被有效使用的dbGroup内的instance只有心跳,不会初始化连接池。

2.32.2 负载均衡

dble通过配置多个dbInstance为读操作提供负载均衡,注意的是rwSplitMode配置不为0,详细请参见db.xml章节。负载均衡规则如下:

  1. 确定参与读写分离的dbInstance集合
  2. 负载均衡算法

2.3.2.1 确定参与读写分离的dbInstance集合

该算法在每次连接获取时提供可用的dbInstances实例集

  • 写节点(primary="true")可用
    • rwSplitMod配置为2,则写节点有资格参到读写分离,将写节点加入到dbInstances实例集
    • 读节点(primary没配置或者 primary="false")
      • 节点可用且需要进行延迟检测,检查延迟是否在阈值内再决定是否加入到dbInstances实例集
      • 节点可用且不需要进行延迟检测,直接加入到dbInstances实例集
  • 写节点异常
    • 检查读节点是否可用,与上面读节点的检测机制一致

2.32.2.2 负载均衡算法

该算法在dbInstance集合中选择一个dbInstance实例来获取连接。

  • dbInstance集合为空,前端报错。
  • dbInstance集合非空
    • 每个dbInstance有权重设置(readWeight参数), 但不都是等值权重, 依权重随机选择。
    • 每个dbInstance无权重设置或所有权重等值, 则等权随机选择。此种情况只是上面情况的特例。

2.32.2.3 写节点是否参与均衡与dbGroup的rwSplitMode属性有关,具体见下图

rwSplitMode

2.32.3 分析用户支持语句类型

按照clickhouse对于mysql语法的兼容,对于select语句,dble目前都能支持

2.32.4 分析用户功能限制

  1. 目前仅支持clickhouse
  2. 目前支持select语句,其他类型语句dble不保证正确性
  3. 分析用户不支持带库名直接登录

results matching ""

    No results matching ""