go语言基础学习 | 青训营笔记

49 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第8天。今天学习了如何做一个秒杀系统。

首先,这涉及到一些系统设计的内容。有关系统设计,主要可分为以下几个问题:1,为什么要做系统设计?2,系统设计的定义是什么?3,怎么做系统设计,如何落地一个系统?4,系统功能实现之后,如何分析瓶颈并优化?5,如何验证系统的可用性和确定性?如下图所示。

image.png

而设计系统,是存在一定流程的。从场景、存储、服务、扩展这四个角度,可以分为场景分析、存储设计、服务设计、可扩展性,如下图所示。

image.png

设计系统的过程中,必然是存在一定的瓶颈的。如何解决瓶颈?主要可分为火焰图分析、链路追踪、性能测试。

其次,我们学到了电商业务的相关逻辑。主要可分为人、货、场。有关人,主要涉及到消费者、用户和流量来源;有关场,主要涉及到线下商场和线上电商;有关货,主要涉及到商品、商家和供应链。

image.png电商的过程中,涉及到很多秒杀操作。而秒杀主要涉及到下面的挑战:高性能、资源成本、反欺诈、防止超卖、流量管控、扩展性、鲁棒性。那如何实现秒杀操作呢?从功能的角度来说,主要涉及到秒杀活动发布、秒杀商品详情、秒杀下单,从并发的角度来说,主要涉及到万人参与秒杀、QPS1w+等。而从存储的角度来说,主要是通过Mysql提供底层支持,然后是Redis,最后是localcache。