随笔

48 阅读2分钟

分布式起源单机性能瓶颈所以需要多台服务器来支撑请求,所以存在分布式。系统发展到分布式自然面临CAP问题。所有称自己是分布式架构的都必须面对CAP问题。

CAP:一致性;可用性;分区容错性

分布式

从客户端发起请求来说首先是http调用进入负载均衡,然后进入某个服务,在这个服务中执行任务,存取数据,事后对用户数据进行分析计算,在整个过程中需要协调硬件资源等。从上述流程中抽取出下面的分布式内容:

  • 分布式调用
  • 分布式协同
  • 分布式存储
  • 分布式计算
  • 分布式资源管理和调度

二、分布式调用

当单体服务支撑不了业务面临的下一个就是服务拆分。拆分后的服务之间如何调用就是需要好好讨论的问题。按照从客户端到服务需要经过多个调用过程,按照顺序:负载均衡-->网关-->服务A-->服务B

2.1 负载均衡

目前业界提到负载均衡立马想到nginx。请求的流程都进入nginx,然后nginx进行转发

2.2 网关

spring cloud gateway

2.3 服务注册和发现

2.3.1 Eureka
2.3.2 Nacos

2.4 服务间调用

2.4.1 feign
2.4.2 dubbo

三、分布式协同

多个服务读取/写入同一个资源那么就面临着资源竞争,所以需要分布式锁来保证服务间的互斥。多个服务做同一件事情还面临着分布式事务的问题。应用服务在集群部署时还有主从问题

3.1 分布式锁

3.1.1 分布式锁原理
3.1.2 redis实现
3.1.3 数据库实现

3.2 分布式事务

3.2.1 ACID理论
3.2.2 CAP理论
3.2.3 BASE理论
3.2.4 DTP模型
3.2.5 分布式事务2PC解决方案
3.2.6 分布式事务TTC解决方案

3.3 分布式选举

ZK

四、分布式存储

4.1 分布式数据库

4.2 分布式缓存