服务容错存在的意义

微服务系统逐渐不可用.png

现有三个微服务。
在某个时间点A服务挂了,B服务还在疯狂地调用A服务的API。
B服务发往A服务的请求就会被强制等待,直到请求超时。
而在java程序里,一次请求往往对应一个线程,如果请求被强制等待了,那么线程就会被强制阻塞,一直到请求超时的时候这个线程才会被释放。由于现在是一个高并发的系统,阻塞的线程就会越来越多。而线程对应的又是服务器的服务资源,比如说内存,cpu。如果不做任何处理的话,B服务所在的服务器再也无法创建新的线程了,于是B服务也挂了。
我们把基础服务故障导致上层服务故障,并且这个故障不断放大的过程称之为雪崩效应。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容