前些日子我们服务出了一次故障,刚开始都有点蒙,不知道为啥突然就出问题了,然后我们通过紧急的定位,半个小时查到问题所在。
大概是23.30分,运营反馈活动数据一直没变化,我开始查看后台数据,看了数据少了,然后直接找业务负责人看下业务服务是不是有异常,我首先看了下日志,有个error的报错,报错是:circuit breaker 'service' is open,看了下是熔断的意思,然后想到可能是连接上报数据服务异常了,我想到今天是刚上线,可能是那个上报的服务名写错了,然后我检查代码,确认了一下,没有写错,然后我想是不是接受上报的服务挂了,然后我确认了一下上报服务,上报服务是正常的,数据的写入也是正常的。然后我去看了一下今天的数据趋势,发现从21.19分开始数据突然降了一倍,然后我定位问题肯定是从这个时候出现的。然后怀疑是不是网关服务问题或者业务服务和上报服务中间中间网络问题,然后我先去排除一下两个服务中的网络,先telnet一下上报服务的端口,竟然连不上,这个时候神情露出喜悦的笑脸,然后我联系上运维,问了今天业务服务和数据服务中间网络不通了,原来是今天启用了安全策略,有些端口被封了,这个时候我让运维从新开放端口,数据开始恢复了。
头一次遇到熔断的问题,然后按照之前学的思路去检查问题所在,深切感觉到理论知识的重要性。
下面我们来复习一下熔断知识:
通过熔断机制来挽救整个系统,下面的图是熔断机制的产生。

什么是服务熔断?
关于熔断的解释
开启熔断
熔断恢复