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

时间:2025-02-12 14:58:59

本地读单边写

本地读单边写模式应在配置文件中配置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