这是我参与「第五届青训营」笔记创作活动的第10天。 这节课从系统设计的问题出发介绍了为什么要做系统设计、如何评估一个系统、系统设计的定义、系统设计的流程--场景分析、存储分析、服务设计以及可扩展性、如何发现系统的瓶颈,其中涉及到之前课程有介绍到的火焰图分析、链路追踪和性能测试、如何保证系统的可用性和稳定性,涉及到许多名词。因为本节课介绍的是秒杀系统的设计,所以老师先介绍了电商三要素--人、商品和场合,然后介绍了商品的概念--具有交易价值和属性的信息载体,SPU和SKU,然后介绍了秒杀业务的特点--瞬时流量高、读多写少和实时性要求高,介绍了秒杀系统面临的一些挑战,比如反欺诈、鲁棒性、防止超卖、扩展性等等。然后开始一步步设计秒杀系统,首先按系统设计的流程进行分析,然后介绍了系统架构图,与用户层、接入层、应用层和基础层,接着就是秒杀流程图,清晰地展示了秒杀系统所需要用到了各种服务、组件及各种单元之间的通信,然后进入实战部分,老师将自己做好的一个秒杀系统进行讲解,代码量还是相当大的,涉及到mysql、redis、各种接口和组件等等,代码部分是这节课难点,老师讲完各种功能的代码之后开始演示,首先对各种接口进行测试,这里用到了postman软件,然后我课下搜集资料对postman的使用进行了复习,之前有用到过,但是也是很浅,自己没有深入了解这个软件,了解之后发现postman对于api的测试和开发有很大帮助,然后老师演示了这个系统中涉及到的很多组件,看着老师在命令行中打出来的命令,也想成为老师这样的开发大佬,最终系统工作还是十分顺利的,看着听着挺容易,但如果自己从0设计这样的系统出来,肯定不是一件易事,要考虑各种可能出现的问题,设计相应的功能,并且要确保代码的正确性。最后老师对于高并发系统设计进行了总结。这节课看完,羡慕老师的开发能力同时,我也要立下目标继续努力,锻炼自己的开发能力。