Robbin负载均衡详解及实践---SpringCloud组件(三)

news2024/10/5 22:25:00

Robbin负载均衡详解及实践

  • 一 为什么使用Robbin?
  • 二 Robbin概念
  • 三 负载均衡实践
    • 1.启动eureka客户端
    • 2.启动多个provider服务,注册到eureka
    • 3.在consumer端配置负载均衡参数
  • 四 Robbin源码剖析

一 为什么使用Robbin?

在Eureka详解及实践—SpringCloud组件(二)案例中,我们启动了一个feign-provider-modules,然后通过feign-consumer-8080调用feign接口来访问。
但是实际环境中,我们往往会开启很多个feign-provider-modules的集群。此时我们获取的服务列表中就会有多个,到底该访问哪一个呢?
一般这种情况下我们就需要编写负载均衡算法,在多个实例列表中进行选择。

二 Robbin概念

在这里插入图片描述

Ribbon属于进程内LB,它只是一个类库,集成于消费方进程,消费方通过它来获取服务提供方的地址。
所以说我们只需要在消费者端配置负载均衡策略。

进程内LB:将LB集成到消费方,消费方从服务注册中心获知哪些地址可用,然后自己再从可用地址中选择一个合适的服务器。

三 负载均衡实践

案例中的负载均衡是基于 openfeign+eureka实现的。
引入 spring-cloud-starter-openfeign 后,使用 Ribbon 是客户端负载均衡器 则无需引入额外依赖,因为引入的 spring-cloud-starter-openfeign 依赖中集成了 Ribbon。

实现步骤:

1.启动eureka客户端
2.启动多个provider服务,注册到eureka
3.在consumer端配置负载均衡参数

1.启动eureka客户端

在这里插入图片描述

2.启动多个provider服务,注册到eureka

  1. 为了观察负载均衡效果,改造一下feign-provider-modules服务中的getHandle方法。

    在这里插入图片描述

  2. 启动多个provider实例项目

    在这里插入图片描述
    在这里插入图片描述

  3. 观察eureka控制台发现3个provider成功注册
    http://127.0.0.1:10086/
    在这里插入图片描述

3.在consumer端配置负载均衡参数

feign-provider: # 服务名
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 选择负载均衡策略,默认为轮询方式,当前配置为随机方式
    ConnectTimeout: 250                 # 连接超时时间
    ReadTimeout: 1000                   # ribbon 读取超时时间
    OkToRetryOnAllOperations: true      # 是否对所有操作都进行重试
    MaxAutoRetriesNextServer: 1         # 切换实例的重试次数
    MaxAutoRetries: 1                   # 对当前实例的重试次数

多次访问观察结果为随机
http://localhost:8080/consumer/depart/get/2
在这里插入图片描述

四 Robbin源码剖析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAS初识

1、SAS常用工作窗口 “结果”(Result)窗口——管理SAS程序的输出结果; “日志”(Log)窗口——记录程序的运行情况; “SAS资源管理器”(Explore)窗口; “输出”&#xff0…

详解vue中的Object.defineProperty

如果想要age遍历的话 就设置属性 打印出来 发现有可以枚举的属性age 参考课程: 011_尚硅谷Vue技术_Object.defineProperty_哔哩哔哩_bilibili // 1.Vue中的数据代理: // 通过Vm对象来代理data对象中属性的操作(读/写) // 2…

STL容器 —— list 了解、接口使用,以及模拟实现list(部分常用接口)

注意 : 以下所有文档都来源此网站 : http://cplusplus.com/ 一、vector的介绍及使用 list文档的介绍:https://cplusplus.com/reference/list/list/ 1. vector 的介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&…

python自动化测试工具selenium使用指南 ,绝对能帮到你

目录 概述 pythonselenium环境安装 使用selenium启动浏览器 selenium页面加载等待和检测 使用time.sleep()等待 使用implicitly_wait设置最长等待时间 使用WebDriverWait设置等待条件 检测document是否加载完成 selenium元素定位和读取 查找元素 dom元素交互 查找元…

地址族和数据序列

IP地址 为使计算机连接到网络并收发数据,必需向其分配IP地址。 IP地址分为两类。 IPv4 (Internet Protocol version 4)4字节地址族 IPv6 (Internet Protocol version 6)16字节地址族 IPv4与IPv6的差别主要是表示IP地址所用的字节数,目前通用的地址族为IPv4。 IPv6是为了应对20…

全面接入!ChatGPT杀进15个商业应用,让AI替你打工

ChatGPT API开放60多天,世界已经不是两个月前的样子了。 微软联合创始人比尔盖茨称GPT是“40多年来最革命性的技术进步”,英伟达创始人黄仁勋高呼:“我们正处于AI的iPhone时刻”,阿里董事会主席兼CEO张勇也说:“所有行…

经验总结:(Git 版本控制工具快速入门)

Git学习笔记 版本控制(版本迭代) 什么是版本控制 版本迭代,开发过程中,对项目各个阶段的版本的控制。 在开发过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本。 多人开发…

ADV7391BCPZ-ASEMI代理亚德诺ADV7391BCPZ原厂芯片

编辑-Z ADV7391BCPZ参数描述: 型号:ADV7391BCPZ VDD:1.8V VAA:3.3V 全驱动输出电流:34.6 mA 低驱动输出电流:4.3 mA 输出电容:10 pF 模拟输出延迟:6 ns DAC模拟输出倾斜&am…

x509证书-crl证书吊销

标准 CRL fields -- 版本、时间、证书序列号和扩展名 -- 都是在4.1节的ASN.1中定义的 -- AlgorithmIdentifier 在第 4.1.1.2 节中定义 以下各项描述了 X.509 v2 CRL 在 Internet PKI 中的使用。 关于签名值和验证 signatureValue 字段包含根据 ASN.1 DER 编码的 tbsCertList 计…

13-Vue技术栈之路由的使用

目录 1、路由相关理解1.1 vue-router 的理解1.2 对 SPA 应用的理解1.3 路由的理解1.4 路由分类 2、路由的基本使用2.1 实现效果:2.2 实现思路:2.3 实现步骤:2.4 具体代码2.5 几个注意点 3、多级路由(嵌套路由)4、路由的…

中科院学术专用版GPT Academic项目实现

【写在最前】要完成GPT 学术优化 (GPT Academic)这个项目需要一些值得注意的地方: chatGPT账户有余额且未过期!!!有代理工具(类似Clash) 1、代码克隆 https://github.com/binary-husky/gpt_academic 根据…

Java后端调取微信小程序接口,创建微信小程序直播间

前提条件: 1.注册微信小程序 2.获取appId和secret秘钥 3.小程序具备直播权限 小程序直播开发文档网址 目录 1.创建和修改直播间 2.删除直播间 3.获取直播间分享二维码 1.创建和修改直播间 两个功能一起写,区别在于,修改的时候需要多一…

【数字化转型-05】数字化转型中战略驱动的利器——平衡计分卡

今年的4月19日, 华为第20届全球分析师大会上,华为孟晚舟在大会上发表了“初心如磐,奋楫笃行,共赢数字化未来”的主题演讲,其中分享了对数字化转型的三个核心洞见,首先,战略驱动是根本&#xff0…

Mojo:比 Python 快 35000 倍的 AI 编程语言

Mojo:比 Python 快 35000 倍的 AI 编程语言 Mojo是一门刚刚发布的面向 AI 开发人员的编程语言。 Mojo 被设计为 Python 的超集,所以如果你已经掌握了 Python,学习 Mojo 会很容易。关键是 Mojo 将 Python 的易用性与 C 语言的性能相结合&am…

AIGC—— 内容生产力革命的起点

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.AIGC 1.什么是AIGC? 2.AIGC有哪些优势与挑战 (1&#xff0…

51单片机(十)DS1302实时时钟

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

Solon 框架,单月下载量突破100万了!!!

Solon 框架,单月下载量突破100万了。感谢开源的力量和社区的支持,我们同喜同荣!!!目前,作为新成员加入了“可信开源共同体”,也积极参与中科院的“开源之夏”计划,也备受某军工服务商…

【C++入门】你知道C++为什么会有内联函数吗?

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

深度优先遍历和广度优先遍历

深度优先遍历和广度优先遍历 文章目录 深度优先遍历和广度优先遍历图图的实现遍历方式深度优先遍历基本思想广度优先遍历基本思想 完整代码 图 介绍:用于表示多对多的关系 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称…

FFmpeg AAC 解码 PCM

1. 概要与流程图 1.1 AAC 转 PCM,需要解码库来实现,目前了解有三种方式,当前使用的是 FFmpeg 库解码 1) faad 解码库网址:faadhttps://sourceforge.net/projects/faac/files/faad2-src/ 2) fdk-aac 编解码库网址: fdk-aac