跳至主要內容
常见概念

常见概念

5. 相关概念

5.1 分布式系统如何保证数据一致性

在分布式系统中,由于数据可能存储在不同的节点上,因此需要采取一些机制来保证数据的一致性。以下是一些常见的数据一致性机制:

  1. 两阶段提交(Two-phase Commit,2PC):2PC是一种常见的分布式事务协议,它通过两个阶段的提交机制来保证多个节点之间的事务一致性。在第一阶段中,协调者节点向参与者节点发送提交请求,询问它们是否准备好提交事务。如果所有参与者节点都准备好了,那么在第二阶段中,协调者节点向所有参与者节点发送提交命令,完成事务提交操作。如果有任何一个参与者节点无法完成事务提交操作,那么整个事务将会回滚。

  2. 三阶段提交(Three-phase Commit,3PC):3PC是2PC的改进版,它通过增加一个准备阶段来减少事务回滚的可能性。在第一阶段中,协调者节点向参与者节点发送准备请求,询问它们是否准备好提交事务。如果所有参与者节点都准备好了,那么在第二阶段中,协调者节点向所有参与者节点发送提交命令,完成事务提交操作。如果有任何一个参与者节点无法完成事务提交操作,那么在第三阶段中,协调者节点向所有参与者节点发送回滚命令,回滚事务。

  3. Paxos算法:Paxos是一种分布式一致性算法,它可以通过多个节点之间的投票机制来保证数据的一致性。在Paxos中,节点之间通过消息交换来达成一致,每个节点可以担任提议者或者接收者的角色,通过互相通信来达成一致。

  4. ZooKeeper:ZooKeeper是一种分布式协调服务,它提供了一些原语和API,可以用于实现分布式锁、分布式队列、分布式事务等功能。在ZooKeeper中,所有的操作都是原子性的,可以保证数据的一致性。


zhaoxi大约 11 分钟SpringCloudSpringCloud
Ribbon

2. 负载均衡

负载均衡是将请求分散到多个节点上处理,以达到负载均衡和提高系统性能的目的。常见的负载均衡算法有轮询、权重轮询、最小连接数等,其中轮询算法是最简单的一种,即按照节点顺序依次分配请求。

SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的

2.1 Ribbon负载均衡

Ribbon是Netflix开源的一个基于HTTP和TCP的负载均衡器,主要用于在分布式系统中实现客户端负载均衡。Ribbon可以与EurekaConsul等服务发现框架集成,实现动态的负载均衡和故障转移等功能。


zhaoxi大约 5 分钟SpringCloudRibbon