SpringCloud-day05-服务调用Ribbon

6.服务调用Ribbon

6.1Ribbon简介

  eureka服务注册与发现,但是结合eureka集群的服务调用并没有谈到。这里就要用到Ribbon,结合eureka,来实现服务的调用;

  Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。

Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。

在Spring Cloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。

Ribbon与Eureka配合使用时的架构如下图:

  

6.2.Ribbon简单实用

  Ribbon是客户端负载均衡,所以肯定集成再消费端,也就是consumer端

  修改ticket-consumer-80

  第一步: ticket-consumer-80,引入依赖,pom.xml 加入 ribbon相关依赖

 1  <!--  Ribbon与Eureka 结合消费端负载均衡-->
 2         <dependency>
 3             <groupId>org.springframework.cloud</groupId>
 4             <artifactId>spring-cloud-starter-eureka</artifactId>
 5         </dependency>
 6         <dependency>
 7             <groupId>org.springframework.cloud</groupId>
 8             <artifactId>spring-cloud-starter-ribbon</artifactId>
 9         </dependency>
10         <dependency>
11             <groupId>org.springframework.cloud</groupId>
12             <artifactId>spring-cloud-starter-config</artifactId>
13         </dependency>

  第二步: ticket-consumer-80 的 application.yml如下


server:
port: 80
context-path: /

# 客户端负载均衡配置
eureka:
client:
register-with-eureka: false
service-url:
defaultZone: http://eureka7001.wfd360.com:7001/eureka/,http://eureka7002.wfd360.com:7002/eureka/,http://eureka7003.wfd360.com:7003/eureka/

  第三步:ribbon结合eureka来调用服务提供者,SpringCloudConfig也改成 要加个负载均衡配置 @LoadBalanced

   

  第四步:因为和eureka整合,所以启动类TicketConsumerApplication_80 加个注解 @EnableEurekaClient

  

  第五步:在服务提供者ticket-provider-6001的application.yml加下配置,指定下应用名称:

  application:

      name: service-ticket

  直观图如下:

  

  第六步:修改下TicketConsumerController的URL,改成指定的微服务应用名称,在第五步中我们的服务名称为:service-ticket,注意要大写

      代码如下       

          private static final String URL="http://SERVICE-TICKET/";

                   

   第七步:测试 ,先启动3个注册中心,在启动服务提供者,最后启动消费者

        访问:http://localhost/ticket/list ,结果如下,则配置成功

  

  ribbon的基本使用结束,

  springCloud课程与代码下载:https://www.cnblogs.com/newAndHui/p/13210228.html

  完美!

原文地址:https://www.cnblogs.com/newAndHui/p/10622012.html