分布式架构体系_专题-开篇介绍(架构概述)
单体架构早已成过去, 随着互联网和业务规模的发展,分布式系统已经随处可见,掌握分布式架构的知识体系 显得尤为重要.
这里主要是对 分布式架构的认识总结.
分布式架构体系设计 是一种将系统得 不同组件和功能分布在多个节点上,通过网络进行协同工作的架构设计理念和方法.
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 整体架构模式
整体架构模式的目的是: 确保企业信息系统能够支持企业的战略目标,同时保持灵活性、可扩展性和可维护性。
整体架构模式通常包括以下几个关键组成部分:
- 业务架构:定义企业的业务流程、组成结构和业务策略,以支持企业目标
- 应用架构:定义企业应用系统的结构和交互方式,包括应用的功能、接口和服务
- 数据架构:定义企业数据的组织、管理和访问方式,包括数据模型、数据存储和数据交换
- 技术架构:定义支持企业信息系统的安全策略和控制措施,以保护企业资产和数据
- 安全架构:定义企业信息系统的安全策略和控制措施,以保护企业资产和数据
- 集成架构:定义不同系统和组件之间的集成方式,以实现数据和流程的无缝流动
整体架构模式还可以能包括 治理、风险管理、合规性和其他方面的考虑。 通过采用整体架构模式,企业可以确保其信息系统的设计和实施与企业战略保持一致,并且能够适应不断变化的业务需求和技术环境。
4. 分布式系统模式
架构模式 相比分布式系统模式,是一个更广泛的概念,不仅适用于分布式系统,也适用于单体系统。 架构模式提供了一种高层次的抽象, 用于知道软件系统的组织和设计。
架构模式通常关注于系统的结构、组件、它们之间的关系以及它们如何交互。架构模式可以包括分布式系统模式,但它们也包括其他类型的模式,如:
- MVC(模型-视图-控制器)模式:用于分离用户界面和业务逻辑。
- 管道-过滤器模式:将数据流通过一系列过滤器进行处理。
- 分层架构模式:将系统分解为不同的逻辑层,每层负责不同的职责。
总的来说,分布式系统模式是架构模式的一个子集,专注于解决分布式环境中特有的问题。而架构模式提供了更广泛的设计原则和实践,适用于各种类型的软件系统。
分布式系统模式都有哪些呢?
- 代理模式:一个中间代理(代理服务器) 代表客户端与服务端进行通信,可以提供负载均衡、缓存、安全等功能
- 断路器模式:
- 命令查询责任分离(CQRS):将读取(查询)操作和写入(命令)操作分离, 以提高性能和可伸缩性
- 事件溯源:
- 领导者选举:
- 发布者/订阅者:kafka等。 消息生产者、消息消费者 订阅.
- 分片模式:
5. 难点
- 分布式一致性
- 分布式事务管理
- 网络通信与延迟
- 分布式故障处理
- 资源管理与调度
- 数据分布与管理
- 分布式锁与同步
- 性能优化
- 监控与调试
- 安全问题
5.1 网络通信与延迟
在分布式架构体系设计中,如何避免网络延迟和开销?
对网络延迟赫尔开销的理解: 这是分布式系统固有的挑战之一,但为了获得诸多优势需要面对现实困难问题,需要在性能优化和系统特性之间权衡和取舍
- 解决办法包括: 优化网络架构、数据压缩、缓存策略、就近访问、异步通信、协议优化、资源预分配、负载均衡策略 等
合并请求、优化网络协议、智能路由(负载均衡)、流量控制、系统优化(减少不必要的通信)
如何评估网络延迟和开销问题呢?
- 基准测试、监控工具、性能分析工具、日志分析、压力测试、分布式跟踪(系统)