项目作者: zy-yun

项目描述 :
springCloud netflix 的ribbon负载均衡组件demo示例
高级语言: Java
项目地址: git://github.com/zy-yun/spring-cloud-starter-netflix-ribbon.git


spring-cloud-starter-netflix-ribbon

springCloud netflix 的ribbon负载均衡组件demo示例

本demo仅为演示 微服务中的负载均衡组件跟底层网络通信组件的集成使用

Ribbon(LoadBalancerClient)、RestTemplate 组件

依赖jar包:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <!-- spring cloud netflix ribbon的组件-->
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
  9. <version>2.2.3.RELEASE</version>
  10. </dependency>

主要组件讲解:

RestTemplate组件:

  1. HttpClientokHttp等的类似功能封装,便于微服务间的网络请求通信。
  2. 使用时注意:
  3. 1.需要手动使用@Bean restTemplate加入springIOC容器中
  4. 2.使用@AutoWried注解装配该bean

Ribbon的LoadBalancerClient负载均衡客户端组件,依赖netflix-ribbon jar

  1. 使用:
  2. 1.使用@AutoWried注解装配该bean
  3. 2.loadBalancerClient.choose("spring-cloud-order-service"),括号中为提供者服务的唯一Id
  4. 3.applicationproperties文件中配置 指定的服务提供者id 地址列表。
  5. 例如:spring-cloud-order-service.ribbon.listOfServers =localhost:8081,localhost:8082

注意:
上述的spring-cloud-order-service服务,需要自己建一个springboot服务,application.name与这个保持一致,然后启动两个端口(
8081,8082),
即 两个应用。
然后浏览器地址端输入:http://localhost:8080/user/1
查看返回结果:会发现robbin默认的使用的负载策略为轮询,8081/8082循环依次访问

2020/07/05 15:09 版本:
1.增加@LoadBalanced注解,取消@AutoWried显式注入LoadBalancerClient负载均衡客户端组件
2.直接使用restTemplate..getForObject(“http://spring-cloud-order-service/orders",String.class),url直接传提供者服务的id跟path