1.后台一个服务异常,另外一个服务调用它的地方没设置好超时以及做好防雪崩,进而将自身内部的另外一个关键服务影响,最终酿成巨大故障。
可以总结的小点:
1)防雪崩肯定是需要的
2)如果是同步调用,超时时间的设置需要特别注意把握
3)重要程度不一样的服务,最好能独立开来,避免互相影响
4)跟进问题的时候,一定要有全局视图,可能最关注的那个点只是一个最后的现象,而不是问题的根源
5)全局视图的建立,绝对的依赖对整体业务情况的把握
6)不熟悉的东西,不可控的东西,如果拿来做核心关键业务,一旦出现问题,会非常被动
7)DB的索引,一定要未雨绸缪,慎之又慎
2.忙中出错
SlaveDB肯定会有延迟,不管DBA告诉你说在2秒还是在1秒内,谁能保证不出现异常,谁不能保证网络一直可靠。
你唯一需要相信的,就是它一定有延迟;
你唯一能做的,就是能不要用它就不要用它,如果Master都能撑得住,何必要去用Slave?读写分离不是为了读写分离而分离。
3.可重现的Bug就是对你最好的礼物
既然能重现,查问题就肯定有了突破口,从这里进入就好,不要再找其它无关痛痒的东西,念叨着不知道怎么办。
发布之后,不查看进程情况,不查看日志情况,不查看监控曲线,不进行自己的实际验证,不知道要干啥。。。
出现问题之后,第一要事就是先解决问题,不是在那里干等,让用户骂你。
我看到这种情况,只有一个想法:你不急我都要急死了。
4.得到线索,收到问题的反馈还不主动去查日志,定位分析,解决可能存在的问题,反而是让别人重试,让别人帮这你来定位问题,
这是什么精神?这是大无畏的精神!!!无知者无畏!
--EOF--
Leave a comment