多活高可用服务 MAS-本地读单边写

时间:2024-11-29 09:14:12

本地读单边写

本地读单边写模式应在配置文件中配置routeStrategy为"local-read-single-write"。在这种路由模式下,读操作在本地进行,不受MAS指示的活跃节点影响。根据配置文件中的AZ信息判断本地属于哪个AZ,读操作时从本地AZ进行读取,写操作仍然根据MAS指示的活跃节点进行操作。(本地指的是当Mongo数据源和props中所配置的AZs为同一AZ时,此Mongo数据源被视为本地)

  1. 本地读单边写模式,配置文件中props.azs信息和sources.dcx.azs信息必须填写。
  2. 如果对接MAS平台,Mongo数据源所属AZ信息,以MAS平台上的AZs信息为准,MAS平台此项选填。
  3. 如果两个Mongo数据源的AZ信息与props.azs均相同,则会随机选取其中一个作为本地数据源进行读操作,所以需要尽量保证两个Mongo数据源的AZ信息,一个与props.azs相同,一个不同。

配置示例:

devspore:
  dds:
    # 基础信息 - 可选,当配置etcd后必选
    props:
      version: v1 #项目版本号,自定义
      app-id: xxxx #应用id,从MAS服务实例页面查询获取
      monitor-id: xxxx #监控器id,从MAS服务实例页面查询获取MAS监控id
      databaseName: xxxx #MAS监控的Mongo数据库
      azs: az1 #项目所属AZ,本地读单边写模式下,此项必填
    # etcd配置,对接MAS服务关键配置,如不对接MAS则无需配置
    etcd: 
      address: 127.0.0.1:2379 #etcd地址,从MAS服务实例页面查询获取
      api-version: v3 #etcd版本,v3
      username: etcduser #etcd用户名,从MAS服务实例页面查询获取
      password: etcdpwd #etcd密码,从MAS服务实例页面查询获取
      https-enable: true #是否启用https,默认为false
      certificatePath: xxx #当启用https时证书路径,实例未开启双向认证或者不启用https场景,此项可不填
    # mongo数据源配置 - 必选    
    sources:
      dc1:
        username: dc1user #mongo用户名
        password: dc2pwd #mongo密码
        url: mongodb://127.0.0.1:29017/mongo1 #mongo连接串(注意不能带用户名密码)
        azs: az1 #此mongo数据库所属AZ
      dc2:
        username: dc2user #mongo用户名
        password: dc2pwd #mongo密码
        url: mongodb://127.0.0.1:29018/mongo1 #mongo连接串(注意不能带用户名密码)
        azs: az2 #此mongo数据库所属AZ
    active: dc1
    routeStrategy: local-read-single-write #路由策略
support.huaweicloud.com/devg-mas/mas-devg-00127.html