什么是API规范
API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。在关键环节制定明确的API规范有助于 Service 对内提高产品间互通的效率,对外提供一致的使用体验,也有助于更好地被集成。
在前面的系列文章中皮皮就介绍过如何使得CPU、I/O满载,如何实现网络延迟、丢包和中断,如何模拟线程、进程以及机器假死。如果对此不清楚的同学可以在文末的【相关系列】中查看相应的文章。
本文介绍是阿里巴巴混沌工程工具ChaosBlade中的CPU满载的故障模拟的实现方式。之前看的是Netflix的Simain Army中的实现,看上去一目了然,通过java的形式调用一下模拟脚本,脚本的内容如下:
这篇也是将混沌工程相关的,之前写了《看我如何作死| 将CPU、IO打爆》和《看我如何作死| 网络延迟、网络丢包、网络中断一个都没落下》这两篇,不过这次不用作死,只是假死^-^。
假死,有机器假死、进程假死和线程假死这几种。让机器、进程之类的假死本身没有多大意义,探索当机器、进程之类的假死之后,其上游调用所接收到的状态(或者说得到的反馈)才有意义。上游通过评估下游假死之后其本身所触发的动作反应以及导致的结果来分析其服务本身的质量,如果未达预期,那么就需要做进一步的整改优化。
昨天,笔者讲述了如何将CPU和IO撑满,这个其实很好理解,写个CPU密集型的程序让CPU忙个不停就可以撑满CPU;弄个程序一直写就可以让IO也撑满。有兴趣的同学可以看下昨天的这篇文章《将CPU、IO撑满》,不过里面的做法分别是使用openssl speed和linux dd工具来实现这两个功能。
面对CPU和IO时,相信大家都能很快的反应出如何实现,那么面对网络问题时,大家的反应又是如何呢?不会是扒网线吧。。。
Update your browser to view this website correctly. Update my browser now