客户端负载均衡Spring Cloud Ribbon之快速入门

客户端负载均衡-Spring Cloud Ribbon

目录

Spring Cloud Ribbon介绍

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Ribbon的实现。通过Spring Cloud的封装可以轻松的将面向服务的Rest模板请求自动转化成客户端负载均衡的服务调用。它是一个工具类框架,不能像服务注册中心、配置中心、API网关单独部署,但是可以存在每一个Spring Cloud构建的微服务和基础设施中。
负载均衡模块都会维护一个可用的服务列表,通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。客户端负载均衡和服务端负载均衡唯一的区别是客户端负载均衡中,所有客户端负载均衡都会自己维护服务清单,而这些服务清单是由服务注册中心获取得到。

Spring Cloud Ribbon使用

1. 添加依赖项spring-cloud-starter-ribbon

1
2
3
4
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>

  1. 添加注解对负载均衡支持@LoadBalanced

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
    * 服务配置信息。
    */
    @Configuration
    public class ServiceConfig {
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
    return new RestTemplate();
    }
    }
  2. 服务之间调用通过服务名称的方式进行调用而不是通过ip地址的方式。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    /**
    * 调用Service来获取内容。
    *
    * @return 返回hello world。
    */
    @GetMapping(value = "getHelloWorld")
    public String getHelloWorld() {
    return restTemplate.getForObject("http://springcloudservice/getHelloWorld", String.class);
    }

这里的springcloudservice是注册到Eureka的服务,服务名称为springcloudservice,可以通过加了@LoadBalanced修饰过的RestTemplate来实现面向服务的接口调用。之前调用方式如下代码所示:restTemplate.getForObject(“http://localhost:8888/getHelloWorld", String.class);

文章目录
  1. 1. 客户端负载均衡-Spring Cloud Ribbon
    1. 1.1. 目录
    2. 1.2. Spring Cloud Ribbon介绍
    3. 1.3. Spring Cloud Ribbon使用