【SpringCloud】Ribbon 负载均衡策略设置以及点对点直连

在这里插入图片描述

1、Ribbon 负载均衡策略设置

示例项目接上一篇文章:【SpringCloud】什么是 Ribbon 以及入门案例_风落_的博客-CSDN博客

1.1、全局

在启动类或配置类中注入负载均衡策略对象。所有服务请求均使用该策略。

@Bean
public RandomRule randomRule() {
    
    
    return new RandomRule();
}

多次访问 http://localhost:9090/order/1,控制台打印的 服务提供者 ip 和端口号如下,即随机策略

image-20220511200057791

1.2、局部

修改配置文件指定服务的负载均衡策略。格式:服务应用名.ribbon.NFLoadBalancerRuleClassName: 对应策略类的全限定名(包名+类名)

# 负载均衡策略
# service-provider 为调用的服务的名称
service-provider:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

多次访问 http://localhost:9090/order/1,控制台打印的 服务提供者 ip 和端口号如下,即随机策略

image-20220511201338726

2、Ribbon 点对点直连

点对点直连是指绕过注册中心,直接连接服务提供者获取服务,一般在测试阶段使用比较多。

2.1、添加依赖

在 pom 文件中引入 ribbon,需要注意如果 pom 中有 eureka 的依赖,则需要去除 eureka 依赖

<!-- netflix-ribbon 依赖 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>

2.2、配置文件

配置文件中关闭 eureka,添加直连的服务地址。如果不设置负载均衡策略默认使用轮询策略。

server:
  port: 9090 # 端口

spring:
  application:
    name: service-consumer # 注册名称

# 配置 Eureka Server 注册中心
#eureka:
#  client:
#    register-with-eureka: false # 是否将自己注册到注册中心,默认为 true
#    registry-fetch-interval-seconds: 10 # 表示 Eureka Client 间隔多久去服务器拉取信息,默认为 30 秒
#    service-url: # 设置服务注册中心地址
#      defaultZone: http://root:123456@localhost:8761/eureka/,http://root:123456@localhost:8762/eureka/

# 负载均衡策略
# service-provider 为调用的服务的名称
service-provider:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    listOfServers: http://localhost:7070,http://localhost:7071

# 关闭 Eureka 实现 Ribbon 点对点直连
ribbon:
  eureka:
    enabled: false # false 关闭

image-20220511202746526

关闭 eureka 注册中心,服务提供者由于无法连接至注册中心所以会报连接异常,但是服务是可以正常消费的,所以目前使用的是点对点的方式进行调用的。

多次访问 http://localhost:9090/order/1,控制台打印的 服务提供者 ip 和端口号如下,即随机策略,因为我们配置的是随机策略,可以自行在配置文件中更改。

至此,Ribbon 的学习就告一段落了!继续加油!

猜你喜欢

转载自blog.csdn.net/qq_45523411/article/details/124718175