Spring Cloud Ribbon使用

Spring Cloud Alibaba教程——引入Ribbon 教程仓库:github Spring-Cloud-Alibaba-Learning 教程索引页:index Spring-Cloud-Alibaba-Learning 文章目录源码地址目标前置知识流程测试 源码地址 本篇内容的项目地址为:引入Ribbon 目标 使用Ribbon替换自定义的负载均衡器 完成service-a对service-b的负载均衡调用 前置知识 熟悉使用RestTemplate进行远程调用(不熟悉请移步1.2 微服务调用) 流程 由于spring-cloud-aliba 阅读详情

        Spring Cloud Ribbon提供客户端负载均衡,可以自动根据内置的负载均衡算法去调用服务实例,默认采用轮询的负载均衡算法。也可以自定义负载均衡算法。Spring Cloud Ribbon的基于Netflix Ribbon组件上进一步封装和集成。Ribbon常用原理图如下:

 引入ribbon

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

Ribbon常用的两种调用方式

1. 使用@LoadBalanced注解

        

首先启动两个PROVIDER服务实例,端口分别是8081和8082,作为服务提供者并将自己注册到注册中心

8081端口服务实例中的测试Controller

@RestController
@RequestMapping("/api")
public class TestController {

    @GetMapping("/test")
    public String test() {
        return "Hello Eureka, I am provider1st";
    }
}

 8082端口服务实例中的测试Controller

@RestController
@RequestMapping("/api")
public class TestController {

    @GetMapping("/test")
    public String test() {
        return "Hello Eureka, I am provider2st";
    }
}

服务消费者使用Ribbon进行负载均衡调用,服务端口为5000

首先指定RestTemplate Bean并使用@LoadBalanced注解注释

@Bean
@LoadBalanced
RestTemplate restTemplate(){
    return new RestTemplate();
}

负载均衡调用provider服务的/api/test接口

@RestController
public class ConsumerController {
    @Autowired
    RestTemplate  restTemplate;

    @GetMapping(value = "/ribbon-consumer")
    public String helloConsumer(){
        return restTemplate.getForEntity("http://provider/api/test",String.class).getBody();
    }
}

浏览器调用接口,多次刷新调用会轮询得到以下结果

2. 使用@RibbonClient注解

@RibbonClient注解源码如下:

public @interface RibbonClient {
    //同下面的 name 属性
    String value() default "";
    //指定服务名称
    String name() default "";
	//指定负载均衡配置类
    Class<?>[] configuration() default {};
}

 首先在配置类中指定负载均衡的策略,也可以根据配置指定

@Configuration
public class RibbonRuleConfig {

        @Bean
        @ConditionalOnMissingBean
        public IRule springHealthRule() {
            return new RandomRule();
        }
}

 在启动类中添加@RibbonClient注解

@RibbonClient(name = "provider", configuration = RibbonRuleConfig.class)

在启动类中指定RestTemplate类

@Bean
@LoadBalanced
RestTemplate restTemplate(){
    return new RestTemplate();
}

服务提供和服务调用者同方法一

浏览器调用接口,多次刷新调用不再是轮询而是随机调用。

Ribbon实现原理可参考:https://skaygo.blog.youkuaiyun.com/article/details/120626029

spring-cloud ribbon的使用 目录1.1简介1.2结构图1.3使用方法1.4自定义均衡算法 1.1简介 ribbin是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbin配置服务提供者地址列表后,Ribbin就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbin默认为我们提供了很多的负载均衡算法,例如轮询,随机等。当然,我们也可以为Ribbin实现自定义的负载均衡算法。 1.2结构图 1.3使用方法 1.导入ribbin依赖 <dependency> <grou 阅读详情

相关推荐

Spring Cloud Ribbon源码分析(Spring Cloud Kubernetes)

在项目中使用Ribbon的目的是在客户端(服务消费端)实现负载均衡。 在上一篇《Spring Cloud OpenFeign源码分析》中我们分析了为什么使用OpenFeign时,不配置url,且不导入Ribbon的依赖会报错。本篇继续分析OpenFeign是如何与Ribbon整合、Ribbon是如何实现负载均衡的、Ribbon是如何从注册中心获取服务的。 OpenFeign与Ribbon整合后的接口调用流程 OpenFeign与Ribbon整合实现负载均衡调用接口的流程如下: spring-clo.

吴就业 942

Spring Cloud Ribbon 详解

Spring Cloud Ribbon 知识点: Ribbon介绍(3点) 使用方法 负载均衡策略和自定义负载均衡策略 Ping机制 Ribbon配置 1、介绍 Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独

FanGer的博客 6553

Mac和VScode配置fortran

macOS系统 vscode fortran gfortran 终端

weixin_43047707的博客 2412

springcloud Ribbon的详解

Ribbon是Netflix发布的开源项目,Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的框架。

tian830937的专栏 2737

使用同一个时钟源clki,做两个二分频时钟,得到div2_clk1和div2_clk2,这两个时钟都能跟源时钟clki同步,但是div2_clk1和div2_clk2的相位可能是相同的,也可能是反相

比如,触发器1的初始Q为0,而触发器2的初始Q为1(这可能由于芯片制造工艺的微小差异、上电过程的随机性、或没有全局复位信号导致)。这句话的意思是:虽然div2_clk1和div2_clk2都是由同一个妈妈(clki)生出来的,频率也都是妈妈的一半,但它们“起步”的时刻可能不同。所以,上面那段话是在提醒你注意这种潜在的、由分频产生的时钟相位关系的不确定性,这在异步电路设计或时钟管理中是必须考虑的关键因素。结果:div2_clk1和div2_clk2的波形完全重合,它们的上升沿和下降沿都发生在同一时刻。

m0_49540263的博客 594

ABAP BOM展开避坑指南:CS_BOM_EXPL_MAT_V2函数参数配置详解

本文深入解析了SAP ABAP开发中用于物料清单展开的核心函数CS_BOM_EXPL_MAT_V2。针对其复杂的参数配置,如CAPID、STLAN、DATUV和MEHRS,提供了详细的避坑指南和最佳实践,帮助开发者避免数据错误与性能陷阱,实现高效、准确的BOM多层展开。

pea55的博客 856

Spring Cloud Ribbon的使用详解

Ribbon是Netflix发布的开源项目,`Spring Cloud Ribbon`是基于`Netflix Ribbon`实现的一套客户端`负载均衡`的框架。

怪咖@的博客 6822

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1096

SpringCloud--负载均衡

Spring Cloud Ribbon是Spring Cloud生态系统中的一部分,是一套基于 Netflix Ribbon 实现的客户端负载均衡工具,由于Spring Cloud对其进行二次封装,可以将面向服务的Rest模板(RestTemplate)请求转换成客户端负载均衡的服务调用。且无需单独部署,只需要在项目中引入相关依赖,并在项目配置文件中进行相关配置后,便可以在客户端进行请求的负载均衡调用了。Ribbon也允许开发者通过实现IRule接口来自定义负载均衡规则。

qq_33807380的博客 2056

5分钟搞定PettingZoo多智能体环境搭建:从安装到运行第一个Demo

本文详细介绍了如何在5分钟内完成PettingZoo多智能体环境的搭建,从安装到运行第一个Demo。通过精准的版本控制和常见问题解决方案,帮助开发者快速上手多智能体强化学习(MARL)环境配置,并提供了实战案例和性能优化技巧。

backprop5master的博客 223

视觉辅助RIS波束追踪:用摄像头“看见”用户,实现毫秒级波束对准

在无线通信领域,波束成形技术是提升高频段信号覆盖与质量的核心手段,其原理是通过调整天线阵列的相位,使信号能量在特定方向相干叠加,形成高增益定向波束。这项技术的价值在于能有效克服高频信号路径损耗大、穿透性差的瓶颈,广泛应用于5G/6G、毫米波通信及室内定位等场景。然而,传统波束追踪依赖信道估计或波束扫描,存在训练开销大、实时性差的问题。本文聚焦于一种创新解决方案:将计算机视觉与可重构智能表面(RIS)相结合。通过摄像头直接感知用户位置,并利用RIS快速重构反射波束方向,实现了近乎零开销、毫秒级延迟的波束追踪,

weixin_33552698的博客 621

Spring Cloud源码分析(二)Ribbon

在之前介绍使用Ribbon进行服务消费的时候,我们用到了RestTemplate,但是熟悉Spring的同学们是否产生过这样的疑问:RestTemplate不是Spring自己就有的吗?跟Ribbon的客户端负载均衡又有什么关系呢?下面在本文,我们来看RestTemplate和Ribbon是如何联系起来并实现客户端负载均衡的。 首先,回顾一下之前的消费者示例:我们是如何实现客户端负载均衡...

小飞侠的博客 408

保姆级教程:在阿里云ECS上用Docker一键部署EMQX MQTT服务器(Ubuntu 20.04)

本文提供在阿里云ECS上使用Docker一键部署EMQX MQTT服务器的详细教程,涵盖从实例创建、Docker环境配置到EMQX部署与优化的全流程。适合物联网开发者快速搭建高效、安全的MQTT消息服务器,适用于智能家居、工业物联网等场景。

weixin_28739079的博客 309

Spring Cloud Ribbon

祝大家每日进步,有技术问题多多交流,同时欢迎大家关注我的头条号:IT人孙会良 Spring Cloud Ribbon 一.Sping Cloud Ribbon概述 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡.................................

sunhuiliang85的专栏 6274

Kriging克里金模型实现数据回归预测Matlab代码

Kriging克里金模型实现数据回归预测Matlab代码

天天酷科研的博客 606

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring Cloud 应用篇 之 Ribbon 的基本使用

上一篇文章初步体验了 Eureka 的基本使用,讲了关于服务的注册与发现。这一篇主要讲解基于 Ribbon 实现的服务调用。(一)简介Spring Cloud Ribbon 是一个基于 Http 和 TCP 的客服端负载均衡工具,它是基于 Netflix Ribbon 实现的。客户端负载均衡即是当浏览器向后台发出请求的时候,客户端会向 Eureka Server 读取注册到服务器的可用服务信息列表...

永不止步 4286

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Ribbon - 官方已停更!Spring Cloud 为何弃用 Ribbon

Spring Cloud弃用Ribbon的原因及替代方案 摘要:随着微服务架构演进,Netflix Ribbon因官方停止维护被Spring Cloud弃用。Ribbon曾是核心客户端负载均衡组件,但存在阻塞式I/O模型、与新技术不兼容等问题。Spring Cloud推出轻量级的Spring Cloud LoadBalancer作为替代方案,具有非阻塞I/O、响应式编程支持、更好集成性等优势。迁移路径包括:从Hoxton.SR12版本开始标记Ribbon为弃用,2021.0.0版本正式移除,开发者需改用Lo

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

spring cloud 之 Ribbon

1.Ribbon是什么Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具。Netflix Ribbon 是 Netflix 公司发布的开源组件,其主要功能是提供客户端的负载均衡算法和服务调用。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如 Eureka、Feign 以及 Hys...

天行健,君子以自强不息;地势坤,君子以厚德载物。 288

Spring Cloud Ribbon源码解析

负载均衡就是用来帮助我们将众多的客户端请求合理的分配到各个服务器,以达到服务端资源的充分利用和更少的请求时间,它是日活亿级用户的网站架构中最重要的手段。而Ribbon实现正向代理的软负载均衡,Spring cloud Feign默认集成Ribbon,所以注解@FeignClient的类,默认实现了ribbon的功能,在之前的spring cloud-feign源码中已经提过LoadBalancer...

布道 5460

Spring-Cloud之Ribbon

原文:https://blog.vchar.top/java/1620820800.html Ribbon的引入将为我们解决服务集群部署时需要实现相关的负载均衡的算法,简化服务调用的过程;引入Ribbon后在进行服务调用时只需要指定服务名称即可,无需去关心服务的部署地址以及负载均衡实现。下面我们通过一些Ribbon的示例带你快速了解如何使用它。下面示例使用的Spring-Cloud的版本是Hoxton.SR8,Spring-Boot的版本是2.3.4.RELEASE。示例项目的源代码 添加相关的依赖 由.

起岸星辰 432

Spring Cloud(三):Spring Cloud Alibaba Ribbon

负载均衡介绍 服务端的负载均衡 客户端的负载均衡 常见负载均衡算法 Ribbon Ribbon内核原理 Ribbon扩展功能 Ribbon相关接口 Ribbon负载均衡策略 修改默认负载均衡策略 NacosRule 负载均衡策略 饥饿加载 Spring官方提供的两种客户端都可以使用loadbalancer RestTemplate 和 WebClient

Men-DD 861

Spring Cloud系列之Ribbon

概述负载均衡负载均衡,即Load Balance,LB,通器常有两种实现手段,服务端和客户端。负载均衡器,是带有负载均衡功能的实体(或载体),本文不做严格区分;即缩写LB,可表示负载均衡策略,也可以表示负载均衡器。服务端LB的缺点,提供更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均...

cnzzs的博客 1045

Spring Cloud-Ribbon

一、简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。   Ribbon是Spring Cloud核心组件之一,它提供的最重要的功能就是负载均衡,和硬件负载均衡F5不同,它的负载均衡是基于客户端的,Zuul网关和Feign可以通过Ribbon轻松的实现服务的负载均衡,同时避免了与业务无关的冗余代码。   Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cl

qq_16268979的博客 310

Spring Cloud Ribbon理解与简单使用

Ribbon:提供客户端侧负载均衡算法,默认轮询(Feign中自带ribbon,不需导入依赖) 工作流程: 1、选择Eureka Server(优先选择在同一个Zone且负载较少的Server) 2、根据用户指定的策略(Ribbon提供),从Server取到的服务注册列表中选择一个地址 region:可以简单理解为地理上的分区 zone:可以简单理解为region内的具体机房 @LoadBal...

微笑的花的博客 2504
上一篇: Eureka客户端源码分析
下一篇: Spring Cloud Ribbon源码分析
思维的深度
博客等级 码龄11年 2万+粉丝 391原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值