zoukankan      html  css  js  c++  java
  • 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

      完美!

  • 相关阅读:
    二、JAVA通过JDBC连接mysql数据库(操作)
    一、JAVA通过JDBC连接mysql数据库(连接)
    while loading persisted sessions [java.io.EOFException]的三种解决办法!
    8大排序算法的java实现--做个人收藏
    数据库索引实现原理—B_TREE
    数据库查询优化方法
    webservice原理及基于cxf开发的基本流程
    Java多线程之Thread、Runnable、Callable及线程池
    随机数问题--已知有个Random7()的函数,返回1到7随机自然数,让利用这个Random7()构造Random10()随机1~10.
    深入Java—String源代码
  • 原文地址:https://www.cnblogs.com/newAndHui/p/10622012.html
Copyright © 2011-2022 走看看