多活高可用服务 MAS-本地读单边写
本地读单边写
本地读单边写模式应在配置文件中配置routeStrategy为"local-read-single-write"。在这种路由模式下,读操作在本地进行,不受MAS指示的活跃节点影响。根据配置文件中的AZ信息判断本地属于哪个AZ,读操作时从本地AZ进行读取,写操作仍然根据MAS指示的活跃节点进行操作。(本地指的是当Mongo数据源和props中所配置的AZs为同一AZ时,此Mongo数据源被视为本地)
- 本地读单边写模式,配置文件中props.azs信息和sources.dcx.azs信息必须填写。
- 如果对接MAS平台,Mongo数据源所属AZ信息,以MAS平台上的AZs信息为准,MAS平台此项选填。
- 如果两个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 #路由策略