1、Ribbon 负载均衡策略设置

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

1.1、全局

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

@Bean

public RandomRule randomRule() {

return new RandomRule();

}

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

1.2、局部

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

# 负载均衡策略

# service-provider 为调用的服务的名称

service-provider:

ribbon:

NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

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

2、Ribbon 点对点直连

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

2.1、添加依赖

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

org.springframework.cloud

spring-cloud-starter-netflix-ribbon

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 关闭

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

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

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

查看原文