Spring Cloud【Finchley】-05使用配置文件自定义Ribbon Client

举报
小工匠 发表于 2021/09/10 23:16:07 2021/09/10
【摘要】 文章目录 概述示例新建子模块子模块加入依赖配置文件增加配置验证 源码 概述 Finchley.SR2版本的官方文档: https://cloud.spring.io/spring...


在这里插入图片描述

概述

Finchley.SR2版本的官方文档:
https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html#spring-cloud-ribbon

在这里插入图片描述


示例

新建子模块

父模块microservice-spring-cloud,右键新建Maven Module : micorservice-consumer-movie-ribbon-customrule-properties

查看父模块的pom.xml
在这里插入图片描述

子模块工程结构
在这里插入图片描述


子模块加入依赖

micorservice-consumer-movie-ribbon-customrule-properties子模块的pom.xml加入spring-cloud-starter-netflix-eureka-client依赖

	<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
	</dependency>

  
 
  • 1
  • 2
  • 3
  • 4

配置文件增加配置

根据官网的指导可知,如果我们希望在该微服务中设置请求某个服务的规则,配置

在这里插入图片描述

application.yml中增加如下配置

#使用属性自定义Ribbon配置
MICROSERVICE-PROVIDER-USER: 
  ribbon: 
    NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

这里我们使用随机的方式,所以设置了 RandomRule 。


验证

Step1:启动Eureka Server微服务
Step2: 启动两个Provider微服务
Step3:启动该微服务作为消费者,通过Eureka Server上的地址去调用注册在Eureka上的两个provider微服务,观察负载均衡策略

在这里插入图片描述

经过测试,如果设置了NIWSServerListClassName,那么调用的服务端的微服务的名字必须大写,否则会找不到微服务。 No instances available for microservice-provider-user。 不过看官网的例子服务名也是小写的,这里还不是很清楚,请大家慎重看待我这里的结论,不一定正确,欢迎指正

这样设置,测试了下结果还是像轮询的方式,先把 NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList配置项去掉,重新验证下

在去掉NIWSServerListClassName的前提下

  • 如果服务名还是大写的话,看测试结果 还是轮询的。

在这里插入图片描述

  • 如果把服务名改成小写,测试结果

在这里插入图片描述

看结果,是随机分发的策略。

目前还搞不懂Spring Cloud 和Ribbon 是如何协调工作的,先记录下结果,后续再研究。 如果有不对的地方,请指正,谢谢。

Spring Boot和Spring Cloud 的版本信息

在这里插入图片描述


源码

https://github.com/yangshangwei/SpringCloudMaster

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/84930016

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。