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

  完美!

posted @   李东平|一线码农  阅读(421)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示