粉丝9189获赞4.8万

我在想分享一个我们最近生产上出现一个比较大的业务的问题,在一天的晚上大概是八九点的时候,突然之间出现了一个业务访问上的一个 很大的延迟。比如说平时我们这个业务访问可能只是毫秒级的,一下子变成了秒级甚至是几十秒的延迟,影响了 用户访问了。那这天晚上一下子用用户点上去,可能是转圈圈,可能会报一个超时,或者是什么样一下子无法就是正常访问了。因为一开始大家可能觉得这问题要不就是网络局故障了,网络延迟 或者是应用的中间件出故障了,中间件可能负荷高了,或者是数据库层面可能分叉高了,就导致了延迟。因为这个问题可能是存在多方面的原因,并不是你一下子找出来了。所以说我们当时在没有判断问题根音之后,又联系了所有的厂商, 比如网络层的我们的厂商,还有我们服务器层的厂商,还有系统层的厂商,还有存储跟数据库层厂商,我们其实都叫过来一起来排查这问题,每个厂商排查来都觉得自己这边没什么问题,收集到他们的一些大盘件回去孙齐家发现好像我们这边都没什么问题,肯定要给我们一个 答覆跟解决方案,要不然我们整个业务晚上我们叫你们过来,你们说没问题。第二天早上其实这个问题还在继续,只不过问题不是持续的很,断断续续的只能几分钟来一次, 大概半小时来一次,那这个对我们业务虽然不是致命影响,可是也是很影响我们业务体验的,厂商之间互相的推诿,我们只能让各厂商都去把自己的那套东西从头去彻尾的彻底排查件,发现你们都说 ok。 最后这个问题是这样,网络供应商他们来 排查网络上问题,比如说 h 三 c 的 工程师过来排查下我这个设备发信号什么都 ok 的。 我也不知道为什么你们这个火龙公社说我们这个设备只负责收来的网络的这个包,没什么延迟, ok 了,他说我这设备只负责收,不负责发的哭着声,他一查 我突然发现我这个发出去的包好像比平时有了延迟。最后问题就是收包正常,发包慢了,就导致这条线路就延迟了。我们当时不是跟你们说 我们这条网络设备必须是高可用的,你不能只有一条线路给我们用,说发一共是八条线路,我们这一条线路出问题了,就把这一条线路上的一些业务给 hold 住了, 想不到这一条线路上路之后就影响了我们整个业务的访问,并不能及时去发现这条线路出问题。你可以把这个线路停掉, 降低拥挤,让他又分摊到另外七条线路上去,不是访问又正常了吗?可是你们这个优先级做的非常不好,你们跟我说这条优先,我们当时设置了一个域值,比如说这条线路延迟了多少时间, 比如延续,延迟五分钟就会断掉,这样你的业务就会另外七条上跑就正常了。可是你们这个太死板,因为我们这个业务断呢,他没有连续断五分钟,比如说连续只断,断一分钟就好了,你过一会又连续断,断了,比如三十秒,所以说你们这线路永远都不会降一迅急或者是关掉, 导致我们的业务是时断时续,时断时,时断时续,所以说你们这个问题肯定要帮我们解决,你们给我提出方案做一个什么监测,这条线路如果连续断了一分钟就把我们关掉,或者是连续断了三十秒,给我们一个告警,目前只能死马当活马医,你们没有更好的方案,只能以你们这个方案我们去视察。监 词称建六,如果断了三十秒给我们发告警及及时的去响应,如果断了三长,你们可以人工去解路去把它断掉,永远是时断时续状态, 业务访问也是时断时续,你想要的高可用,一定要去考虑他的预值在一些极端情况可能会是什么样,尽量的将可能性想多一点,可能会降低你出现问题的频率。啊,我收工啦。