代码改变世界

MongoDB复制集设置复制延迟节点

2022-11-06 14:54  abce  阅读(239)  评论(0编辑  收藏  举报

将延迟成员的vote设置为0,并将延迟成员隐藏,可以提升性能。

延迟节点需要满足的条件:
·优先级为0,这样就不会变成主节点。
·是隐藏的,应用不应该查询隐藏节点
·Oplog窗口能力必须要大于延迟窗口

设置延迟节点;

rs0:PRIMARY> cfg = rs.conf()
rs0:PRIMARY> cfg.members[2].priority = 0
rs0:PRIMARY> cfg.members[2].hidden = true
rs0:PRIMARY> cfg.members[2].slaveDelay = 900   //slaveDelay is in seconds and in v5.0 onwards, this parameter changed to secondaryDelaySecs.
rs0:PRIMARY> cfg.members[2].votes = 0
rs0:PRIMARY> rs.reconfig(cfg)

注意,重构复制集会导致一次新的选举。因此,建议在维护窗口执行上面的操作。

rs0:PRIMARY> rs.conf().members[2]
{
			"_id" : 3,
			"host" : "demo3:27017",
			"arbiterOnly" : false,
			"buildIndexes" : true,
			"hidden" : true,
			"priority" : 0,
			"tags" : {

			},
			"slaveDelay" : NumberLong(900),
			"votes" : 0
	}