系统设计思考

Posted itermm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统设计思考相关的知识,希望对你有一定的参考价值。

IT系统设计从早期的Jsp/Servlet类应用为主,到今天的微服务、ServerLess、Docker、Paas、CI&CD、Devops。目标:高效研发、弹性扩展、高效运维。手段:Divide&Conquer (分层,解耦合)。

协议层从早期的HTTp+XML&SOAP 到今天的Restful (Spring)& 轻量级RPC (Dubbo, gRpc),协议的效率和内容自描述性方面得到了很大提高;

功能分离:缓存和消息队列得到了广泛的应用。

数据存储:各类Nosql(Cassandra、Hbase、MongoDB、Nero4J等) 数据库的出现极大丰富了数据存储的选择。

微服务框架:Spring Cloud, Dubbo 等,简化了微服务开发和治理工作

当前一些有自研需求的公司逐步开始在已有Iaas平台基础上,引入Docker,基于K8s实现服务(容器)的治理,逐步实现DevOps & CICD 目标。

实际应用开发中,典型的应用首先会对应用进行分层,客户端层(微信客户端、web、androidios)和服务层分离,这样可以各层实现自我优化;服务层通过分布式技术,使用微服务设计理念,实现服务的弹性扩展和支撑能力;数据层通过分库分表、读写分离等技术扩展数据存储层面的能力。

对于技术人员来说,需要了解核心的设计思想,在选择技术框架时,能够根据不同的层分析不同的适用原则选择框架,上线运维过程中能够快速定位问题,并用合适的方式来解决。

 

以上是关于系统设计思考的主要内容,如果未能解决你的问题,请参考以下文章

10-3 系统设计思考题:如何设计一个秒杀系统

10-3 系统设计思考题:如何设计一个秒杀系统

[思维模式-6]:《如何系统思考》-2- 认识篇 - 为什么要系统思考?系统思考是系统架构师系统设计师的基本技能

资金对账系统的设计思考

高性能秒杀系统的设计思考,超详细!

系统设计思考