系统架构设计与优化|系统架构之模式


文章目录

  • 系统架构之模式
    • 分层
    • 分割
    • 分布式
      • 分布式分类
    • 集群
    • 缓存
      • 缓存种类
        • CDN
        • 反向代理
        • 本地缓存
        • 分布式缓存
    • 异步
      • 采用异步好处
    • 冗余
    • 自动化
      • 应对策略
    • 安全
      • 策略

系统架构之模式 系统架构设计与优化|系统架构之模式
文章图片

分层
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统
分割
如果说分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分
系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署,提高系统的并发处理能力和功能扩展能力
分布式
对于大型系统,分层和分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同的模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着可以使用更多的计算机完成同样的功能,计算机越多,CPU,内存,存储资源也越多,能够处理的并发访问和数据就越大,能够为更多的用户提供服务
分布式分类
  • 分布式应用和服务
  • 分布式静态资源
网站的静态资源如:JS,CSS,Logo 图片等资源独立分布式部署,并采用独立的域名,即常说的动静分离
  • 分布式数据和存储
  • 分布式计算
特点是移动计算而不是移动数据
集群
多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务,集群能够很好地提供扩容和容灾
缓存
缓存就是将数据放在距离计算最近的位置以加快处理速度,缓存是改善软件性能的第一手段
缓存种类
CDN
内容分发网络,部署在距离终端用户最近的网络服务商
反向代理
反向代理属于系统前端架构的一部分,部署在系统的最前端,这里一般缓系统的静态资源以及做一些负载均衡
本地缓存
在应用服务器本地缓存这热点数据,应用程序可以在本机内存中直接访问数据,而无需访问数据库
分布式缓存
当系统数据量非常庞大,即使只缓存一小部分,需要的内存空间也不是单机能承受的
异步 也是系统解耦的一个重要手段。异步架构是典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不变,彼此功能实现可以随意变化而不互相影响,这对系统扩展新功能非常的便利
采用异步好处
  • 提高系统可用性
  • 加快系统响应速度
  • 消除并发访问高峰
冗余 主要是为了保证可用性,集群也是冗余的一种方式;数据库的备份(冷备份/热备份)
自动化
无人值守的情况下系统可以正常运行,这是理想的状态
对于系统的发布,许多故障都发生在发布环节
应对策略
  • 自动化代码管理
  • 自动化测试
  • 自动化安全监测
  • 自动化部署
  • 自动化监控
  • 自动化降级
对于系统并发量峰值比较大的业务,通过降级,能够避免系统的宕机,而带来大面积的影响,比如:降低队列中存储的请求数目
  • 自动化分配资源
【系统架构设计与优化|系统架构之模式】根据每台机器的负载情况,决定请求由那台机器进行处理
  • 自动失效恢复
安全 策略
  • 通过密码和手机校验码
  • 防 XSS 攻击
  • 防 SQL 注入
  • 敏感信息过滤
  • 风险控制

    推荐阅读