软件&系统架构总纲

    技术2022-07-11  81

    软件&系统架构总纲

    分层分割分布式

    异步集群有缓存

    安全冗余自动化

    伸缩扩展全能用

     AOP  与   IOC

    MVC    +     DI

    设计模式均负载

    熔断限流雅启停

    事务分布ACID

    离线计算与AI

     

    软件架构

    分层:分层是计算机中的经典模式,比如TCP/IP.  业务中的MVC.  Network|DISK|DAL|UTIL|Service|Mediator|Controller|Viewer

    分割:现代系统越来越复杂,如果商城APP,会所定单,端口,用户等独立出来,分成独立的模块、微服务、中台。 

    AOP:面向切面编程,拦截器,中间件(midleware)

    IOC:控制反转,回调,被调,软件框架

    DI:依赖注入,实现IOC的一种方式

    MVC:Model,View,Controller.     mvp, mvvc

    对象之间的关系:设计模式。 创建型,结构型,行为型。  对象之间无非:A继承B,A ref B, A ref nB, A ref A

    系统架构

    分布式,集群,冗余:分片用来扩展系统性能和吞量,  复制集则可以解决数据可靠性能。

    自动化:devops. 自动扩容,故障恢复

    衡量计算机系统的5个指标:

    易伸缩:可以随意增加机器来线性提升性能,吞吐量

    可扩展:添加新功能不用改老代码,热更新。

    安全:   安全认证,https, ACL Key,风险控制系统。

    高性能: 可以通过扩展机器来提升性能。 单机性能:要有好的数据结构和算法 + 异步操作+缓存, 少用锁

    高可用:一个结点有多个备份结点,随时保持数据一致。 主节点出错,从节点能自动切为主

    事务与分布式事务:ACID, 2PC, 3PC,  TCC, 事务消息  Saga

    离线计算:实时性不高的可以用离线计算,定时更新。 比如推荐系统

    AI:人工智能,挖掘数据

    客户端到服务器的系统架构

    就拿http缓存为例:客户端自己本地缓存,CDN缓存,DNS缓存, 网络加速专线,正向代理缓存, lVS负载均衡,内部反向代理缓存,内部分布式缓存redis,  服务进程内缓存,CPU缓存,磁盘缓存。

    可以看出解决客户端到服务器的访问的问题,也采用了分层的思想。

     

    软件工程

    人vs人。 客户端,前端,服务器,测试,项目经理,产品经理,同一个公司其他部门,其他公司,外包。

    良好的沟通与合作。

    Processed: 0.016, SQL: 9