`
zsjg13
  • 浏览: 144837 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Ribbon用于负载均衡

 
阅读更多

运行微服务的一个实例,URL是硬编码在客户端中,以及服务与服务间的调用中。现实情况中,此办法不

妥,因为服务的实例可以有多个,此时,我们应当使用一个load balancer或一个本地DNS服务器来抽象

掉实际实例的位置,在客户端中配置的就应该是一个别名或load balancer的地址。load balancer

之后接收到别名,将其解析成可用实例中的一个。用此方式,我们就能配置许多实例,它还帮助处理

服务器失败问题,这对于客户端来说是透明的。

 

上面说的主意可以用Spring Cloud Netflix Ribbon来实现。Ribbon是一个客户端load balancer,

它可以在一组服务器上执行round-robin load balancing。Ribbon库也可以有其他负载均衡算法。

 

Spring Cloud提供来一种声明的方式来配置和使用Ribbon client。



 

 

如上图所示,Ribbon客户端从Config服务器获取所有可用微服务实例的一个列表,并且,默认运用

round-robin负载均衡算法。

 

为了使用Ribbon客户端,需添加如下maven依赖:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>

 

修改Booking微服务配置文件,booking-service.properties,添加一个新的属性用来配置

一组Fare微服务:

fares-proxy.ribbon.listOfServers=localhost:8080,localhost:8081

 

此时要修改原先的FareServiceProxy类,以便使用Ribbon客户端,注意到原先@RequestMapping

中的value需要从/get改成/fares/get,这样的话,就很容易把host name和port移到配置文件中:

@FeignClient(name="fares-proxy")
@RibbonClient(name="fares")
public interface FareServiceProxy {
  @RequestMapping(value = "fares/get", method=RequestMethod.GET)

 

 

这个时候,我们就能运行2个Fares微服务实例,一个在8080,一个在8081:

java -jar -Dserver.port=8080 fares-1.0.jar
java -jar -Dserver.port=8081 fares-1.0.jar

 

运行Booking微服务,当它启动时,它的CommandLineRunner会自动插入一个booking记录,这会走

第一个服务器。

 

当运行website项目,它调用Booking服务,该请求走第2个服务器。


 

  • 大小: 30.1 KB
分享到:
评论

相关推荐

    SpringBoot + Zuul + ribbon 中实现负载均衡

    Ribbon则是Netflix开源的一套客户端负载均衡器,它可以集成在Spring Cloud中,用于在客户端进行服务的发现和负载均衡。Ribbon会根据配置的策略,自动选择一个微服务实例来处理请求,这样可以分散负载,提高系统的...

    eureka基于ribbon的负载均衡demo

    在微服务架构中,Eureka 和 Ribbon 是两个关键组件,它们是 Spring Cloud 生态系统的重要部分,用于实现服务发现和客户端负载均衡。本教程将基于提供的 "eureka基于ribbon的负载均衡demo" 来深入理解这两个组件的...

    7.Ribbon负载均衡器详细介绍

    在微服务架构中, Ribbon 是 Netflix 提供的一个客户端负载均衡器,它可以帮助我们在客户端实现对服务的请求分发,从而实现服务之间的负载均衡。Ribbon 不仅可以与 Eureka(服务发现组件)配合使用,也可以独立工作...

    SpringCloud 服务负载均衡和调用 Ribbon、OpenFeign的方法

    Ribbon 是 Netflix 提供的客户端负载均衡器,它作为一个客户端的负载均衡中间件,实现了基于 Java 的客户端负载均衡算法。Ribbon 默认集成了 Eureka,可以从 Eureka Server 获取服务列表并进行负载均衡。Ribbon 提供...

    SpringCloud使用Ribbon实现负载均衡

    在分布式系统中,负载均衡是一种重要的技术,用于在多个服务器之间分发工作负载,提高系统的可用性和响应速度。Spring Cloud是构建微服务架构的一套工具集,其中Ribbon是它提供的一个客户端负载均衡器,可以帮助我们...

    Eureka,ribbon修改负载均衡策略

    Eureka 主要用于服务注册与发现,而 Ribbon 则是客户端负载均衡器,它可以帮助我们在微服务之间进行智能路由,确保请求能够均匀地分发到各个服务实例。 **Eureka 简介** Eureka 是 Netflix 提供的一个分布式服务...

    springcloud-ribbon负载均衡demo

    首先,Ribbon是Netflix开源的一个Java库,用于客户端的负载均衡。在微服务架构中,每个服务可能有多个实例运行,Ribbon可以在客户端发起请求时,自动选择一个合适的服务器进行转发,从而达到负载均衡的效果。它支持...

    Ribbon负载均衡简单实现

    Ribbon是Spring Cloud中的一个组件,主要用于客户端的负载均衡。本文将详细探讨Ribbon在Spring Cloud中的简单实现及其工作原理。 **Ribbon简介** Ribbon是Netflix开源的一个Java客户端,主要功能是在客户端实现负载...

    Nginx与Ribbon:负载均衡的双剑合璧

    2. **Ribbon**:客户端负载均衡器,提供多种负载均衡策略,可以与 Eureka 结合使用 。 3. **Hystrix**:容错管理工具,实现断路器模式,增强系统容错能力 。 4. **Zuul**:微服务网关,提供路由、访问过滤等功能 。 ...

    Ribbon负载均衡代码

    在Spring Cloud生态系统中,Ribbon是一个重要的组件,主要用于客户端的负载均衡。Ribbon是一个轻量级的库,它内置于Netflix的开源项目中,能够帮助我们实现服务间的调用时的智能路由。在这个"SpringCloud学习之路(四...

    02Spring Cloud Ribbon:负载均衡的服务调用1

    在Spring Cloud生态系统中,Spring Cloud Ribbon是一个至关重要的组件,它主要负责实现客户端的负载均衡,以确保服务间的调用能够均匀地分散到各个实例上,从而提高系统的整体可用性和性能。Ribbon是Netflix开发的一...

    Springboot集成Netflix-ribbon、Enreka实现负载均衡-源码

    Netflix Ribbon是Netflix发布的云中间层服务开源项目,主要...在Netflix的架构中,Ribbon通常与Eureka一起使用,Eureka是一个服务治理组件,用于服务的注册与发现,而Ribbon则负责在多个服务实例之间进行负载均衡。

    SpringCloud-Ribbon,使用RestfulTemplate实现负载均衡练习

    在微服务架构中,Spring Cloud提供了丰富的工具集,其中Ribbon是用于客户端负载均衡的组件。Ribbon允许我们在客户端(例如服务消费者)中实现负载均衡,而不是在服务器端(如Nginx)处理。本练习将详细介绍如何使用...

    springcloud+eureka+ribbon多服务负载均衡

    Eureka是Spring Cloud中的一个关键组件,它用于服务发现,而Ribbon则是客户端负载均衡器。本篇将深入探讨Spring Cloud如何结合Eureka和Ribbon实现多服务的负载均衡。 首先,让我们理解一下服务发现的重要性。在...

    spring cloud eureka ribbon实现的负载均衡balance

    Spring Cloud Eureka是微服务架构中的服务注册与发现组件,而Ribbon则是Spring Cloud中用于客户端负载均衡的工具。这两个组件结合使用,可以实现在分布式系统中的智能路由和服务调用,提升系统的可用性和性能。 ...

    客户端负载均衡器Ribbon(实验代码)

    客户端负载均衡器Ribbon是Netflix开发的一个开源组件,主要用于实现微服务架构中的客户端负载均衡功能。在本实验代码中,我们将深入理解Ribbon的工作原理及其在实际应用中的配置与使用。 Ribbon是一个轻量级的库,...

    springcloud-负载均衡,服务注册demo

    Spring Cloud Ribbon是用于客户端的负载均衡器,它可以集成在服务消费者中,自动处理对服务提供者的请求分发。Ribbon支持多种负载均衡策略,如轮询(Round Robin)、随机(Random)等,可以根据业务需求选择合适的...

    73-Spring Cloud客户端负载均衡Ribbon笔记1

    Spring Cloud中的Ribbon是实现客户端负载均衡的关键组件。在传统的服务端负载均衡中,像Nginx这样的代理服务器会接收请求并根据预设的算法(如轮询、权重轮询、随机等)转发到后端服务。而在客户端负载均衡模式下,...

    23-Spring Cloud网关&负载均衡 Zuul&Ribbon1

    Spring Cloud 网关与负载均衡 Zuul&Ribbon Spring Cloud 网关是微服务架构中的一种重要组件,负责处理外部请求并将其路由到正确的微服务实例上。在本文中,我们将探讨 Spring Cloud 网关 Zuul 和负载均衡 Ribbon 的...

Global site tag (gtag.js) - Google Analytics