很多事情,只要善于分解成微小步骤,写下来写清楚,就迎刃而解了。
比如说,热订单索引的订单同步,从老的顺序队列方案切换到新的非顺序队列方案。 由于一直顾虑这个索引同步很敏感,且对部分关键步骤不太确定,就一直拖着没去做。直到出了问题,才下决心要解决它。实际上,并没有那么困难。
问题一: 敏感性的求解
由于买家下单、支付完成后的订单搜索,会优先路由到热索引,因此这个索引同步的延迟,是非常敏感的。操作不当,或者有意外的情况,很容易导致同步延迟或出错,第一时间影响到买家、商家,甚至引起故障。
应对之策: 在凌晨进行操作。 此时,大部分商家、买家都已经进入梦乡,自然就不会对同步延迟或暂时的错误有感知,可以更大胆地执行。 你看,就这么简单!当然,得辛苦一点。
问题二: 关键步骤不太确定
先整体想清楚过程,确定不太确定的关键步骤,不清楚的点在哪里? 询问有经验的小伙伴,弄清楚即可。
技巧:细化
弄清楚整体步骤流程后,细化每一个点。
- 比如观察消息 channel 是否堆积,就把消息系统的界面地址写清楚,具体操作时,按照写好的就可以。
- 比如任务切换,先关闭哪些老的同步任务,要观察什么,等多长时间,再开启新同步任务。写得足够清楚可以操作。
- 比如切换之后的检查点清单,是否有错误日志,正常消费的日志是否OK,是否有消息堆积,下单后的订单搜索是否OK,同步监控是否OK等。