文章目录
- SpringCloud架构
- Eureka流程
- Nacos和Eureka的区别是?
- CAP定理
- Ribbon负载均衡策略
- 自定义负载均衡策略如何实现?
- 本章小结
SpringCloud架构
Eureka流程
- 服务提供者向Eureka注册服务信息
- 服务消费者向注册中心拉取服务信息
- 服务消费者使用负载均衡算法挑出合适的服务提供者
- 远程调用服务对应服务提供者的IP,端口
(其中服务提供者需要定期30秒向Eureka注册中心续约服务的IP和端口,如果不续约会自动剔除对应不续约的服务)
Nacos和Eureka的区别是?
CAP定理
CAP 定理(也称为布鲁尔定理)是分布式系统领域的一个基本原理,它指出在网络分区、一致性和可用性之间只能同时满足其中的两个。CAP 定理中的三个要素如下:
-
一致性(Consistency):
- 在一致性要求下,系统在任何时间点,无论哪个节点,数据都是一致的。当一个写操作完成后,所有后续的读操作都必须读到这个最新的值。强一致性意味着写操作对所有节点都是立即可见的。
-
可用性(Availability):
- 在可用性要求下,系统在任何时间点都能够响应用户的请求。即使某些节点出现故障,系统仍然能够继续提供服务,而不会因为内部节点之间的通信问题而使整个系统不可用。
-
分区容错性(Partition tolerance):
- 分区容错性是指系统能够容忍网络分区,即在网络发生故障时,系统的不同部分仍然能够继续运作。这是分布式系统的一个基本要求,因为在大规模分布式系统中,网络分区是不可避免的。
AP(可用性和分区容错性):
- AP系统优先保证系统的可用性和分区容错性。在网络分区发生时,AP系统可能会牺牲一致性,允许不同节点的数据暂时不一致,以确保系统的可用性不受影响。这种系统通常在写操作后能够快速响应读操作,即使在网络分区的情况下也能继续提供服务。
CP(一致性和分区容错性):
- CP系统优先保证系统的一致性和分区容错性。在网络分区发生时,CP系统可能会牺牲可用性,通过阻止某些操作来保证数据的一致性。这意味着在网络分区的情况下,系统可能会变得不可用,直到网络分区问题解决,系统重新达成一致性。
简而言之,AP和CP系统的主要区别在于它们在面对网络分区时如何权衡一致性和可用性。AP系统更倾向于保持系统的可用性,而CP系统更倾向于保持数据的一致性。在实际的分布式系统设计中,开发者需要根据具体的业务需求和场景来选择合适的模型。
Ribbon负载均衡策略
- Order-Service向Ribbon发起请求
- Ribbon向注册中心拉取请求Request里面UserService
- 注册中心Eureka返回服务列表到Ribbon
- 通过特定负载均衡算法调用某个服务,比如轮询,随机,权重,按照区域可用策略
轮询就是服务器列表挨个问
区域可用策略是对某个区域里面的服务器进行论文
权重策略是根据相应时间来设置权重,响应时间越长,权重小