分布式架构体系_专题-开篇介绍(架构概述)

Catalogue
  1. 1.主要特点
    1. 1.1 去中心化
    2. 1.2 分布式部署
    3. 1.3 网络通信
  2. 2.目标
  3. 3. 常用架构设计模式
    1. 3.1 架构模式总结
    2. 3.1 整体架构模式
  4. 4. 分布式系统模式
  5. 5. 难点
    1. 5.1 网络通信与延迟

单体架构早已成过去, 随着互联网和业务规模的发展,分布式系统已经随处可见,掌握分布式架构的知识体系 显得尤为重要.

这里主要是对 分布式架构的认识总结.

分布式架构体系设计 是一种将系统得 不同组件和功能分布在多个节点上,通过网络进行协同工作的架构设计理念和方法.

1.主要特点

1.1 去中心化

不存在单一的中心控制节点,各个节点相互独立又相互协作.

1.2 分布式部署

系统的各个部分运行在不同的物理或逻辑节点上

1.3 网络通信

节点之间通过网络进行信息传递和协调

2.目标

  • 高可用:通过冗余和容错机制,减少单点故障对系统的影响,确保系统持续可用。

  • 可扩展性:能够方便地添加或移除节点来适应业务增长或变化的需求

  • 高性能:通过分布式处理和负载均衡,提升系统整体的处理能力和响应速度。

  • 容错性和可靠性:即使部分节点出现故障,系统仍能正确运行或快速恢复

  • 数据一致性: 保证在分布式环境下数据的完整性和一致性

  • 弹性:可以动态调整资源分配以应对不同的工作负载

todo: 怎么实现这些目标?都有哪些实践?常见的中间件都有哪些解决方案? 如何和别人直观的描述这些内容?

3. 常用架构设计模式

如何选择适合的架构设计模式.

架构模式 说明 优缺点 具体的实现技术 相关的中间件
*分层架构模式 将系统分为不同的层次,如表示层、业务逻辑层、数据访问层等,各层职责明确。 优缺点 - -
*微服务架构模式 将系统拆分成多个独立的微服务 - 数据6 -
*事件驱动模式 客户端与服务器 - 数据6 -
*微核模式 客户端与服务器 - 数据6 -
*整体架构 是一种用于设计和构建企业信息系统的框架和方法 通过包含多个层次或视角,例如业务架构、应用架构、数据架构和技术架构等 - -
分布式对象模式 客户端与服务器 - 数据6 -
管道-过滤器模式 - - - -
主从模式 有主节点负责主要任务处理,从节点提供辅助或备份 - -
C/S 模式 客户端与服务器 - 数据6 -
MVP模式 客户端与服务器 - 数据6 -
分布式缓存模式 利用缓存提高数据访问效率 - 数据6 -
分布式缓存储模式 如分布式文件系统、分布式数据库等 - 数据6 -
分布式协调模式 如使用zookeeper等进行分布式协调 - 数据6 -

优点:分布式系统的目标, 解决了高可用、扩展性、高性能、容错、弹性等问题。
缺点:负责性增加、 数据一致性挑战、分布式事务难题、部署和管理复杂、成本高(构建和维护分布式架构 需要更多的硬件资源和人力)、网络延迟和开销

3.1 架构模式总结

不同分类的架构(技术架构、产品架构、算法架构、云计算架构、解决方案架构、业务架构)
todo 这些模式怎么划分?

软件设计模式?区别?
todo:自己的认识和总结?

3.1 整体架构模式

整体架构模式的目的是: 确保企业信息系统能够支持企业的战略目标,同时保持灵活性、可扩展性和可维护性。

整体架构模式通常包括以下几个关键组成部分:

  1. 业务架构:定义企业的业务流程、组成结构和业务策略,以支持企业目标
  2. 应用架构:定义企业应用系统的结构和交互方式,包括应用的功能、接口和服务
  3. 数据架构:定义企业数据的组织、管理和访问方式,包括数据模型、数据存储和数据交换
  4. 技术架构:定义支持企业信息系统的安全策略和控制措施,以保护企业资产和数据
  5. 安全架构:定义企业信息系统的安全策略和控制措施,以保护企业资产和数据
  6. 集成架构:定义不同系统和组件之间的集成方式,以实现数据和流程的无缝流动

整体架构模式还可以能包括 治理、风险管理、合规性和其他方面的考虑。 通过采用整体架构模式,企业可以确保其信息系统的设计和实施与企业战略保持一致,并且能够适应不断变化的业务需求和技术环境。

4. 分布式系统模式

架构模式 相比分布式系统模式,是一个更广泛的概念,不仅适用于分布式系统,也适用于单体系统。 架构模式提供了一种高层次的抽象, 用于知道软件系统的组织和设计。

架构模式通常关注于系统的结构、组件、它们之间的关系以及它们如何交互。架构模式可以包括分布式系统模式,但它们也包括其他类型的模式,如:

  • MVC(模型-视图-控制器)模式:用于分离用户界面和业务逻辑。
  • 管道-过滤器模式:将数据流通过一系列过滤器进行处理。
  • 分层架构模式:将系统分解为不同的逻辑层,每层负责不同的职责。

总的来说,分布式系统模式是架构模式的一个子集,专注于解决分布式环境中特有的问题。而架构模式提供了更广泛的设计原则和实践,适用于各种类型的软件系统。

分布式系统模式都有哪些呢?

  • 代理模式:一个中间代理(代理服务器) 代表客户端与服务端进行通信,可以提供负载均衡、缓存、安全等功能
  • 断路器模式:
  • 命令查询责任分离(CQRS):将读取(查询)操作和写入(命令)操作分离, 以提高性能和可伸缩性
  • 事件溯源:
  • 领导者选举:
  • 发布者/订阅者:kafka等。 消息生产者、消息消费者 订阅.
  • 分片模式:

5. 难点

  • 分布式一致性
  • 分布式事务管理
  • 网络通信与延迟
  • 分布式故障处理
  • 资源管理与调度
  • 数据分布与管理
  • 分布式锁与同步
  • 性能优化
  • 监控与调试
  • 安全问题

5.1 网络通信与延迟

在分布式架构体系设计中,如何避免网络延迟和开销?

对网络延迟赫尔开销的理解: 这是分布式系统固有的挑战之一,但为了获得诸多优势需要面对现实困难问题,需要在性能优化和系统特性之间权衡和取舍

  • 解决办法包括: 优化网络架构、数据压缩、缓存策略、就近访问、异步通信、协议优化、资源预分配、负载均衡策略 等

合并请求、优化网络协议、智能路由(负载均衡)、流量控制、系统优化(减少不必要的通信)

如何评估网络延迟和开销问题呢?

  • 基准测试、监控工具、性能分析工具、日志分析、压力测试、分布式跟踪(系统)