Spring Cloud【Finchley】-05使用配置文件自定义Ribbon Client
文章目錄
- 概述
- 示例
- 新建子模塊
- 子模塊加入依賴(lài)
- 配置文件增加配置
- 驗(yàn)證
- 源碼
概述
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
子模塊工程結(jié)構(gòu)
子模塊加入依賴(lài)
micorservice-consumer-movie-ribbon-customrule-properties子模塊的pom.xml加入spring-cloud-starter-netflix-eureka-client依賴(lài)
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>配置文件增加配置
根據(jù)官網(wǎng)的指導(dǎo)可知,如果我們希望在該微服務(wù)中設(shè)置請(qǐng)求某個(gè)服務(wù)的規(guī)則,配置
application.yml中增加如下配置
#使用屬性自定義Ribbon配置 MICROSERVICE-PROVIDER-USER: ribbon: NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerListNFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule這里我們使用隨機(jī)的方式,所以設(shè)置了 RandomRule 。
驗(yàn)證
Step1:啟動(dòng)Eureka Server微服務(wù)
Step2: 啟動(dòng)兩個(gè)Provider微服務(wù)
Step3:啟動(dòng)該微服務(wù)作為消費(fèi)者,通過(guò)Eureka Server上的地址去調(diào)用注冊(cè)在Eureka上的兩個(gè)provider微服務(wù),觀察負(fù)載均衡策略
經(jīng)過(guò)測(cè)試,如果設(shè)置了NIWSServerListClassName,那么調(diào)用的服務(wù)端的微服務(wù)的名字必須大寫(xiě),否則會(huì)找不到微服務(wù)。 No instances available for microservice-provider-user。 不過(guò)看官網(wǎng)的例子服務(wù)名也是小寫(xiě)的,這里還不是很清楚,請(qǐng)大家慎重看待我這里的結(jié)論,不一定正確,歡迎指正
這樣設(shè)置,測(cè)試了下結(jié)果還是像輪詢的方式,先把 NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList配置項(xiàng)去掉,重新驗(yàn)證下
在去掉NIWSServerListClassName的前提下
- 如果服務(wù)名還是大寫(xiě)的話,看測(cè)試結(jié)果 還是輪詢的。
- 如果把服務(wù)名改成小寫(xiě),測(cè)試結(jié)果
看結(jié)果,是隨機(jī)分發(fā)的策略。
目前還搞不懂Spring Cloud 和Ribbon 是如何協(xié)調(diào)工作的,先記錄下結(jié)果,后續(xù)再研究。 如果有不對(duì)的地方,請(qǐng)指正,謝謝。
Spring Boot和Spring Cloud 的版本信息
源碼
https://github.com/yangshangwei/SpringCloudMaster
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud【Finchley】-05使用配置文件自定义Ribbon Client的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring Cloud【Finchle
- 下一篇: Spring Cloud【Finchle