架构设计需要考虑的问题

  • 一、架构设计原则
  • 二、架构优化总结
  • 三、高性能架构要素
  • 四、解耦设计


一、架构设计原则

  1. 避免单点故障
    LB,AS,K8S(HPA)
  2. 可伸缩性
    网络能力
    计算能力
    存储能力
  3. 可扩展性
    应用扩展
    业务解耦+中间件+微服务
  • 如何做好微服务:
    业务拆分
    服务治理(Spring cloud/Dubbo/K8S等)
    自动测试
    自动运维
    监控
  1. 安全性(WAF、服务器安全等)
  2. 服务加速(CDN等)
  3. 成本控制及优化

二、架构优化总结

从需求出发,整体分析
找到关键点,做到不遗漏
设定优化路径,架构的优化不是一蹴而就
遵循架构设计原则

三、高性能架构要素

应用:代码、服务器性能
存储:缓存、CDN
网络:网络带宽、网络路径优化(腾讯AnyCas(基于IP)/DSA(基于域名)云内专线)

四、解耦设计

前后端分离
微服务设计
消息队列MQ(异步、解耦)

  • 异步通信场景:异步通知、一对多生产系统解耦。在线图片处理、海量数据处理、IoT等。以rocketmq/rabbitmq为代表。
  • 大数据场景:具有数据压缩,支持离线和实时数据处理等特点,适用于日志压缩收集、监控数据聚合等,以kafka为代表。
  • 缺点:系统复杂度提高、数据处理一致性问题、研发个人能力要求。

服务治理:Spring Cloud生态、Dubbo、Service Mesh生态
微服务API网关(统一入口管理、API商业等)
服务注册
服务鉴权
应用管理:虚拟机+容器
弹性伸缩
配置中心
发布管理
监控服务
日志服务