spring cloud 之 ribbon

这篇具有很好参考价值的文章主要介绍了spring cloud 之 ribbon。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ribbon概念

Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡的工具,主要功能是提供客户端负载均衡算法和服务调用。简单的说,就是在配置文件中列出 Load Balance( LB:将用户的请求平摊的分配到多个服务上)后面的所有机器,Ribbon 会自动的帮助我们基于某种规则(如简单的轮询,随机、权重等)去连接这些机器。我们很容易使用 Ribbon 实现自定义的负载均衡算法

Nginx和Ribbon的区别

集中式 LB(Load Balancer)

即在服务的消费方和提供方之间使用独立的 LB 设备进行负载均衡,比如nginx,由该设施负责把访问请求通过某种策略转发至服务的提供方。
进程内 LB(Load Balancer)

Ribbon 属于进程内 LB,将 LB(Load Balancer)逻辑集成到消费方,消费方从注册中心那里获知有哪些地址可以使用,然后自己再从这些地址中选择出一个合适的服务器。

Nginx 是服务器负载均衡,客户端所有请求都会交给 Nginx,然后由 Nginx 实现转发请求

Ribbon 是本地负载均衡,在调用微服务接口的时候,会在注册中心上获取注册信息服务列表之后通过策略调用服务

 Ribbon的负载均衡策略

Ribbon一共有7个负载均衡策略

RoundRobinRule :轮询(默认规则)

RandomRule: 随机

RetryRule:重试(先按照 RoundRobinRule(轮询)的策略获取服务,如果获取服务失败则在指定时间内会进行重试来获取可用服务)

WeightedResponseTimeRule:对 RoundRobinRule 的扩展,响应速度越快的实例选择权重越大,越容易被选择

BestAvailableRule:首先会过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务

AvailabilityFilteringRule:先过滤掉故障实例,再选择并发量较小的实例

ZoneAvoidanceRule:复合判断服务所在区域的性能和服务的可用性选择服务器

 默认的轮询负载均衡原理

轮询的负载均衡算法:rest接口第几次请求数量%服务器集群总数量= 实际调用的服务位置下标, 每次服务重启动后rest接口计数从1开始

spring cloud 之 ribbon,springCloud,spring cloud,ribbon,spring

自定义负载均衡策略

注意:需要单独建立一个包,不能与主启动类在同一个包以及子包下

这个自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化定制的目的


@Configuration
public class MyTestRule {

    @Bean
    public IRule myRule(){
        return new RandomRule();   // 定义为随机策略
    }
}

在主启动类上加 @RibbonClient 注解:


// name:指明需要调用的服务名
// configuration:在启动该微服务的时候就能去加载我们的自定义 Ribbon 负载均衡策略配置类
@RibbonClient(name = "cloud-test-service", configuration = MyTestRule.class)
public class TestMainApplication{

    public static void main(String[] args) {
        SpringApplication.run(TestMainApplication.class, args);
    }
}

openfeign和nacos以及eureka都已经自带ribbon依赖,可以在客户端负载均衡文章来源地址https://www.toymoban.com/news/detail-519925.html

到了这里,关于spring cloud 之 ribbon的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Cloud系列】- Ribbon详解与实战

    在前面的文章 Eureka详解与实战、Eureka Client应用、RestTemplate详解及其负载均衡几篇文章中,已经介绍了Spring Cloud基本应用,本文将从讲解在进程层面的负载均衡,在Spring Cloud中如何使用Ribbon做系统应用层面的负载均衡使用。 Ribbon 是netflix 公司开源的基于客户端的负载均衡组件

    2024年02月15日
    浏览(41)
  • 【Spring Cloud】Nacos及Ribbon组件的使用

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起

    2024年01月25日
    浏览(63)
  • Spring Cloud之负载均衡与服务调用(Ribbon)

    目录 Ribbon 简介 负载均衡 简介 负载均衡方式 服务端负载均衡 工作原理 特点 客户端负载均衡 工作原理 特点 对比 实现 负载均衡策略 切换负载均衡策略 定制负载均衡策略 超时与重试 单个服务配置 全局配置 服务调用 示例         Ribbon 是 Netflix 公司发布的开源组件,其

    2024年02月08日
    浏览(51)
  • Ribbon:Spring Cloud负载均衡与服务调用组件

    负载均衡? Ribbon实现服务调用? Ribbon实现负载均衡? 切换负载均衡策略? 定制负载均衡策略? 负载均衡 负载均衡(Load Balance),将用户的请求平分到多个服务器上运行,以扩展服务器带宽、增强数据处理能力、增加吞吐量、提高网络的可用性和灵活性的目的。 服务端负载

    2024年02月03日
    浏览(46)
  • 【Spring Cloud】Ribbon 中的几种负载均衡策略

    负载均衡通常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。 服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使

    2024年02月15日
    浏览(61)
  • Spring Cloud - Ribbon 负载均衡原理、负载策略、懒加载

    目录 ​编辑 一、Ribbon 负载均衡原理 1.1、前言 1.2、负载均衡的工作流程 二、负载均衡策略 2.1、策略原理 2.2、负载均衡自定义方式 三、Ribbon 加载方式 ps:案例是上一章所讲的 “根据订单id查询订单的同时,把订单所属的用户信息一起返回”  。 上一章我们讲到 order-servi

    2024年02月09日
    浏览(37)
  • Spring Boot 中的 Spring Cloud Ribbon:什么是它,原理及如何使用

    在分布式系统中,服务之间的通信是非常重要的。在大型的分布式系统中,有许多服务需要相互通信,而这些服务可能会部署在多个服务器上。为了实现服务之间的通信,开发人员需要编写大量的代码来处理负载均衡、故障转移和服务发现等问题。为了简化这个过程,Spring

    2024年02月12日
    浏览(39)
  • Spring Cloud 实战 | 解密负载均衡Ribbon底层原理,包含实战源码

    专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow专栏:https://blog.csdn.net/superdangbo/category_869

    2024年02月08日
    浏览(53)
  • 【Spring Cloud】Ribbon 实现负载均衡的原理,策略以及饥饿加载

    在前文《深入理解 Eureka 注册中心的原理、服务的注册与发现》中,介绍了如何使用 Eureka 实现服务的注册与拉取,并且通过添加 @LoadBalanced 注解实现了负载均衡。这种自动化的背后隐藏着许多疑问: 服务是在何时进行拉取的? 负载均衡是如何实现的? 负载均衡的原理和策略

    2024年02月07日
    浏览(47)
  • Spring Cloud(Finchley版本)系列教程(二) 客户端负载均衡Ribbon

    Spring Cloud(Finchley版本)系列教程(二) 客户端负载均衡Ribbon 目前主流的负载均衡方案有两种,一种是集中式均衡负载,在消费者与服务提供者之间使用独立的代理方式进行负载,比如F5、Nginx等。另一种则是客户端自己做负载均衡,根据自己的请求做负载,Ribbon就属于客户端自己

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包