课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
故障问题是程序员在开发软件的时候需要长期关注的问题之一,而今天我们就通过案例分析来了解一下,微服务架构开发常见故障问题都有哪些类型。
1.基础故障
机房设施故障:如电力系统故障、空调系统故障等一系列IDC机房底层相关的环境因素。
服务器故障:常见的有物理机、虚拟机、容器的系统宕机和指标异常。宕机包括计划内和计划外,服务器指标异常包括CPU使用率异常,内存使用率过高,SWAP过于频繁、网络、磁盘等设备I/O读写异常,中断及上下文切换频次过高等等。对于虚拟机、容器来说,还会存在资源超卖导致的流量高峰期系统平均负载频繁抖动。
网络故障:网络问题是影响面大的故障因素,往往会导致P0级别的生产事故。常见的有网络中断、丢包、重复、延迟、交换机路由器等设备故障、网络专线故障等等。
接入层故障:常见的问题有DNS解析失败、负载均衡SLB故障、VIP转移故障、Nginx请求转发异常(如路径解析错误、健康检查机制失败)等。
2.中间件故障
常见的中间件故障包括以下组成部分:
存储系统故障:一般指数据库(MySQL、MongoDB、HBase、Cassandra等SQL或NoSQL数据库)、缓存、分布式存储系统、分布式对象系统(OSS)等广义上的存储系统存在的故障点,如:系统单点,存储系统只部署了单实例或单机房。这这种情况下,如果发生单实例宕机或单机房故障,或单实例读写流量过高、数据量较大导致的慢查询、Load升高等负载问题,由于没有更多的冗余,使得系统无法进行故障转移。
消息中间件故障:作为削峰填谷和解耦的利器,消息中间件被大量使用在异步化场景中。但消息中间件并不能保证长久稳定运行。如:数据量过大导致磁盘被填满,从而使得集群不可用;读写压力过大导致MQ集群出现GC频繁、节点脱离集群等故障,如ActiveMQ的NetworkBroker模式,很容易在大流量的读写压力下导致Broker断开连接,影响到总体可用性。
3.外部服务
一般是指三方服务(如RESTAPI/RPC/消息等)的故障,如服务超时、HTTP响应状态码异常、服务过载、返回报文异常等。这类故障是出现频次高的,需要有重点预案、演练和监控。
4.系统缺陷
一般是指我们服务自身的功能、性能或稳定性问题,如:JVM内存溢出、频繁GC停顿、代码死循环、CPU/内存/磁盘使用率异常、系统过载、响应时间过高、功能性BUG等。
5.流程问题
流程问题一般是人为误操作或流程不够标准造成的故障,如代码缺少CodeReview、缺乏渐进式灰度发布机制、缺乏充分的功能或性能测试、缺乏监控告警等。这类问题应该尽量避免。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。