49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
## 分布式服务体系
|
|
#### 单体系统的问题
|
|
1. 业务扩展性 -- 任何业务的调整都需要发布整个系统
|
|
2. 性能伸缩性 -- 动态扩容对单体系统而言效率低下
|
|
3. 代码复杂度 -- 修改一处代码容易引发连锁问题
|
|
|
|
- ##### 系统扩展性
|
|
当前系统的业务需求发生变化时,对现在的系统改动程度的一种控制能力。改动程度越大,扩展性越差
|
|
- ##### 伸缩性
|
|
伸缩性,对系统性能的一种控制能力。如果通过简单扩容就能确保系统的性能得到等比例的提升,就认为系统具备较好的伸缩性。
|
|
#### 分布式系统
|
|
将整个系统拆分成多个能够独立运行的服务,这些服务再物理机上是隔离的,相互之间基于网络进行通信和协调
|
|
|
|
#### 单体系统的拆分策略
|
|
- 纵向拆分:根据业务内容进行拆分,每一个服务都是单独的业务
|
|
- 横向拆分:粒度更细,复用和组合业务能力
|
|
#### 分布式系统的固有特性
|
|
- 网络传输的三态性 -- 成功、失败、超时
|
|
- 请求的容错性 -- 调用链路上的异常扩散,雪崩效应
|
|
- 系统的异构性 -- 多种不同的技术体系
|
|
- 数据的一致性 -- 传统的事务机制无法生效 (什么是传统的事务机制)
|
|
#### 分布式核心技术点
|
|
- 可用 -- 降级、限流、集群和负载均衡
|
|
- 扩展 -- SPI机制、异步消息
|
|
- 性能 -- 异步化、资源重用
|
|
- 治理 -- 服务注册与发现机制
|
|
#### 分布式系统组成结构
|
|
- 功能性组件
|
|
- 网络通信
|
|
- 序列化
|
|
- 传输协议
|
|
- 服务调用
|
|
- 非功能性组件
|
|
- 服务治理
|
|
- 服务路由
|
|
- 服务容错
|
|
- 服务监控
|
|
|
|
|
|
|
|
|
|
|
|
## RPC架构
|
|
`remote process call`, 远程过程调用,分布式的基础
|
|
分布式系统基本功能组件:
|
|
- 网络通信
|
|
- 序列化/反序列化
|
|
- 传输协议
|
|
- 服务调用 |