系统架构之模式

文章目录

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

系统架构之模式

系统架构之模式_第1张图片

分层

分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统

分割

如果说分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分

系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署,提高系统的并发处理能力和功能扩展能力

分布式

对于大型系统,分层和分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同的模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着可以使用更多的计算机完成同样的功能,计算机越多,CPU,内存,存储资源也越多,能够处理的并发访问和数据就越大,能够为更多的用户提供服务

分布式分类

  • 分布式应用和服务
  • 分布式静态资源

网站的静态资源如:JS,CSS,Logo 图片等资源独立分布式部署,并采用独立的域名,即常说的动静分离

  • 分布式数据和存储
  • 分布式计算

特点是移动计算而不是移动数据

集群

多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务,集群能够很好地提供扩容和容灾

缓存

缓存就是将数据放在距离计算最近的位置以加快处理速度,缓存是改善软件性能的第一手段

缓存种类

CDN

内容分发网络,部署在距离终端用户最近的网络服务商

反向代理

反向代理属于系统前端架构的一部分,部署在系统的最前端,这里一般缓系统的静态资源以及做一些负载均衡

本地缓存

在应用服务器本地缓存这热点数据,应用程序可以在本机内存中直接访问数据,而无需访问数据库

分布式缓存

当系统数据量非常庞大,即使只缓存一小部分,需要的内存空间也不是单机能承受的

异步

也是系统解耦的一个重要手段。异步架构是典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不变,彼此功能实现可以随意变化而不互相影响,这对系统扩展新功能非常的便利

采用异步好处

  • 提高系统可用性
  • 加快系统响应速度
  • 消除并发访问高峰

冗余

主要是为了保证可用性,集群也是冗余的一种方式;数据库的备份(冷备份/热备份)

自动化

无人值守的情况下系统可以正常运行,这是理想的状态
对于系统的发布,许多故障都发生在发布环节

应对策略

  • 自动化代码管理
  • 自动化测试
  • 自动化安全监测
  • 自动化部署
  • 自动化监控
  • 自动化降级

对于系统并发量峰值比较大的业务,通过降级,能够避免系统的宕机,而带来大面积的影响,比如:降低队列中存储的请求数目

  • 自动化分配资源

根据每台机器的负载情况,决定请求由那台机器进行处理

  • 自动失效恢复

安全

策略

  • 通过密码和手机校验码
  • 防 XSS 攻击
  • 防 SQL 注入
  • 敏感信息过滤
  • 风险控制

你可能感兴趣的