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 依赖
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 的学习就告一段落了!继续加油!
发表评论