搞会这个索引添加法,十亿级时延敏感集群想抖动都难( 五 )


例如增加了链接限制白名单后 , 就可以通过127.0.0.1登陆到节点内部 , 然后通过killOp操作把从节点正在构建索引的操作干掉 。
六、时延敏感型业务如何做到业务无感知索引添加?

  • 方法一:所有主从确保索引执行完成后添加下一个索引(影响相对较小)
【搞会这个索引添加法,十亿级时延敏感集群想抖动都难】后台background加索引 , 确保所有主从索引构建完成后 , 才开始下一个索引的创建 , 避免出现本文所说的多个索引同时在从节点执行引起业务抖动 。
说明:mongodb高版本中对后台添加索引做了优化 , 从节点拉取建索引对应oplog重放的时候 , 只有第一个索引执行完成 , 才会执行第二个索引 , 从而避免了同时多个索引同时执行引起的抖动 。
  • 方法二:单机启动 , 然后加索引 , 加完索引后再加入到副本集(业务无任何感知)
  • 从复制集中移除某个从节点
  • 单机方式启动该节点
  • 阻塞方式(不带background)加索引 , 这样索引构建速度更快
  • 索引添加完成后 , 副本集方式启动该节点
  • 把该节点加入复制集
通过以上步骤 , 即可无感知方式完成一个从节点的索引添加 , 其他节点添加过程重复该操作过程即可 。