分层分割分布式
异步集群有缓存
安全冗余自动化
伸缩扩展全能用
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人。 客户端,前端,服务器,测试,项目经理,产品经理,同一个公司其他部门,其他公司,外包。
良好的沟通与合作。