系统设计|青训营笔记

78 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 10 天

四个方面 系统设计方法论

电商秒杀业务介绍

课程实践

课程总结

为什么要做系统设计 个人:

为了面试 个人能力提升 拓展技术视野 工作:

业务驱动 系统重构 突破与创新

电商和秒杀

基本概念

Spu

Sku

秒杀业务的特点

秒杀的挑战

资源有限性

反欺诈

高性能

防止超卖

流量管控

扩展性

鲁棒性

设计秒杀系统

4S分析

场景

存储

功能

扩展

系统架构图

实践

秒杀流程

总结

高性能系统的通用设计思想

电商和秒杀 基本概念 Spu Sku 秒杀业务的特点 秒杀的挑战 资源有限性 反欺诈 高性能 防止超卖 流量管控 扩展性 鲁棒性 设计秒杀系统 4S分析 场景 存储 功能 扩展 系统架构图

实践 秒杀流程

例如日记系统: 日志是帮助我们快速定位、排查问题的利器,在代码逻辑非常复杂的时候,合理的日志可以让debug事半功倍;日志还可以帮助我们审计用户行为,回溯异常行为路径,为制定应对策略提供可靠依据。日志系统可以认为是基本独立于业务系统的一个基础组件,可以单独进行设计,它的上游接受来自业务系统的输入,下游对外输出处理后的日志内容。

为了更好地发挥其应有的作用,一个合格的日志系统起码应满足以下条件:

应当根据实际内容设置不同级别的日志,然后根据需要屏蔽某些级别的日志。典型地,为了排查问题的日志,应该设置为Debug级别,为了标记重要流程或输出关键信息,可以设置为Info级别,在发生错误时输出的日志应该设置为Error级别,当错误对后续流程产生严重影响时,可以设置为Panic或者Fatal级别。以上这些日志级别逐渐升高,可以设置屏蔽(也就是不输出)某个级别以下的日志。

如果输出到标准输出,则应尽量为不同级别的日志设置不同的颜色,方便直观地分辨输出日志的级别。

应当为不同级别的日志设置不同的标识,比如类似带上[Error]的标记,方便直观辨识。除此之外,最好带上本项目独有的标识,以本项目为例,可以带上[douyin]的日志前缀

总结 高性能系统的通用设计思想