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

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: Spring Cloud【Finchley】-05使用配置文件自定义Ribbon Client

20190806093230928.jpg


概述


Finchley.SR2版本的官方文档:

https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html#spring-cloud-ribbon


20181209174235760.png

示例


新建子模块


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


查看父模块的pom.xml


20181209174409616.png


子模块工程结构


20181209181839673.png


子模块加入依赖


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>


配置文件增加配置


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

20181209174854683.png

application.yml中增加如下配置

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



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


验证

Step1:启动Eureka Server微服务

Step2: 启动两个Provider微服务

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


20181209183018284.png


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


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


在去掉NIWSServerListClassName的前提下


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


20181209181658164.png

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

20181209181507928.png

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

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

Spring Boot和Spring Cloud 的版本信息


20181209183150667.png


源码


https://github.com/yangshangwei/SpringCloudMaster


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3月前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
155 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
7天前
|
Java 测试技术 应用服务中间件
Spring Boot 配置文件总结
Spring Boot 提供全局配置文件 `application.properties` 和 `application.yml`,用于修改自动配置的默认值。前者使用键值对配置,后者使用缩进和冒号。不同环境(开发、测试、生产)可切换配置文件,通过 `spring.profiles.active` 指定。例如,开发环境端口为4790,测试环境为4791,生产环境为4792。配置示例展示了属性、List、Map定义及引用方法。
46 14
|
29天前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
29天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
1月前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
110 14
|
3月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
2月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
159 5
|
1月前
|
负载均衡 Java Nacos
常见的Ribbon/Spring LoadBalancer的负载均衡策略
自SpringCloud 2020版起,Ribbon被弃用,转而使用Spring Cloud LoadBalancer。Ribbon支持轮询、随机、加权响应时间和重试等负载均衡策略;而Spring Cloud LoadBalancer则提供轮询、随机及Nacos负载均衡策略,基于Reactor实现,更高效灵活。
131 0
|
2月前
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
88 0
|
3月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
278 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件