Ribbon负载均衡及其应用
nginx - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中涉及到负载均衡,为何此处由涉及Ribbon负载均衡呢?那是因为ngnix是服务端的负责均衡,而Ribbon是客户端的负载均衡。
对于负载均衡理论相关的内容nginx - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中没有太多的涉及。此处补充如下:
负载均衡⼀般分为服务器端负载均衡和客户端负载均衡。
所谓服务器端负载均衡,⽐如Nginx、 F5这些,请求到达服务器之后由这些负载均衡器根据一定的算法将请求路由到模板服务器处理。
所谓客户端负载均衡,⽐如我们要说的Ribbon,服务消费者客户端会有⼀个服务器地址列表,调用方在请求前通过一定的负责均衡算法选择一个服务器进行访问,负载均衡算法选择一个服务器进行访问,负载均衡算法的执⾏是在请求客户端进⾏。

至于负载均衡中涉及的算法,后续将会在数据结构与算法中专门介绍。
Ribbon的使用相对比较简单,其一般与Eureka配合使用:Ribbon利用从Eureka中读取到的服务信息,在调用服务提供者提供的服务时根据相应算法进行负载均衡。具体应用如下:
1、无需另外导入jar,因为Eureka相关包中已经包含:

2、修改嵌套调用服务添加@LoadBalanced:

3、修改Resume测试案例:

4、测试结果:

测试过程中遇到几个小问题:
1)无法找到服务,原因是使用了ribbon负载均衡后不可直接使用ip:port地址进行路由了,而是必需使用spring.application.name里配置的名称。为什么呢?可以看下使用ribbon进行客户端负载均衡后,eureka的内容:

本机的ip是:

但是注册到eureka之后是两个地址,所以不使用硬编码的方式进行访问
2)使用spring.application.name里配置的名称后,提示Request URI does not contain a valid hostname: http://XXX/XX/openstate/XX。这是因为ribbon不支持应用名中间包含下划线“_”,支持应用名中间包含连接线“-”。
所以除了以上修改外还需修改被嵌套调用的路由:

配置文件中关于spring.application.name部分内容同步修改。
Ribbon负载均衡及其应用的更多相关文章
- SpringCloud系列——Ribbon 负载均衡
前言 Ribbon是一个客户端负载均衡器,它提供了对HTTP和TCP客户端的行为的大量控制.我们在上篇(猛戳:SpringCloud系列——Feign 服务调用)已经实现了多个服务之间的Feign调用 ...
- Spring Cloud微服务Ribbon负载均衡/Zuul网关使用
客户端负载均衡,当服务节点出现问题时进行调节或是在正常情况下进行 服务调度.所谓的负载均衡,就是当服务提供的数量和调用方对服务进行 取舍的调节问题,在spring cloud中是通过Ribbon来解决 ...
- SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)
1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现 ...
- SpringCloud无废话入门02:Ribbon负载均衡
1.白话负载均衡 在上一篇的介绍中,我们创建了两个一模一样的服务提供者:Provider1和Provider2,然后它们提供的服务也一模一样,都叫Hello-Service.为什么一样的服务我们要部署 ...
- spring cloud: 关闭ribbon负载均衡
spring cloud: 关闭ribbon负载均衡 1.eureka服务 2.2个user服务:7900/7901 3,movie服务 movie服务去请求 user的用户信息,而此时只想请求790 ...
- spring-cloud: eureka之:ribbon负载均衡自定义配置(二)
spring-cloud: eureka之:ribbon负载均衡自定义配置(二) 有默认配置的话基本上就是轮询接口,现在我们改用自定义配置,同时支持:轮询,随机接口读取 准备工作: 1.eureka服 ...
- spring-cloud: eureka之:ribbon负载均衡配置(一)
spring-cloud: eureka之:ribbon负载均衡配置(一) 比如我有: 一个eureka服务:8761 两个user用户服务: 7900/7901端口 一个movie服务:8010 1 ...
- Ribbon负载均衡策略与自定义配置new
Ribbon负载均衡策略 配置 对调用的某个服务启用某种负载策略 1)通过配置文件配置 hello: ribbon: NFLoadBalancerRuleClassName:com.netflix.l ...
- Ribbon负载均衡策略与自定义配置
Ribbon负载均衡策略 配置 对调用的某个服务启用某种负载策略 1)通过配置文件配置 hello: ribbon: NFLoadBalancerRuleClassName:com.netflix.l ...
- SpringCloud学习(4)——Ribbon负载均衡
Ribbon概述 SpringCloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡工具. 简单的说, Ribbon是Netflix发布的开源项目, 主要功能是提供客户端软 ...
随机推荐
- PPT制作手机手指滑动效果
原文链接:https://www.toutiao.com/i6495304998786695694/ 上一节我们完成了手机滑动粗糙效果,这部分我们将给动画添加一个手指的图片. 首先,选择"插 ...
- CobaltStrike简介与安装
CobaltStrike的安装我踩了不少坑,所以我将正确的安装及启动过程跟大家分享一下,以免大家走一些不必要的弯路 Cobaltstrike简介 Cobalt Strike是一款美国Red Team开 ...
- SpringBoot整合Elasticsearch+ik分词器+kibana
话不多说直接开整 首先是版本对应,SpringBoot和ES之间的版本必须要按照官方给的对照表进行安装,最新版本对照表如下: (官网链接:https://docs.spring.io/spring-d ...
- .Net Core依赖注入
一.配置文件的读取 利用Startup类中的configuration读取appsettings.json中的配置 { "Logging": { "LogLevel&qu ...
- 3D建模服务提供更高效、专业的能力,“筑”力开发者
3D建模服务(3D Modeling Kit)是HMS Core在图形图像领域又一技术开放.3D建模产品的定位就是要做快速.简洁.低成本的3D制作能力,并陆续开放给有3D模型.动画游戏制作等能力诉求的 ...
- Android开发----WebView&Activity生命周期
WebView webview是一个再应用中设置好位置和大小的浏览器,而且不会放置任何花哨的UI. 在大多数情况下,除非你调用了原生API,否则不必在webview中专门测试web应用. 首先为Web ...
- Power Apps 创建响应式布局
前言 我们都知道Power Apps作为低代码平台,最大的优势就是各个设备之间的兼容性,尤其是自带的响应式布局,非常好用. 这不,我们就为大家分享一下,如何使用Power Apps画布应用,创建响应式 ...
- What Goes Up Must Come Down
跳转链接 题目描述 给定一个序列, 求出将此序列变换为单调递增.单调递减 或者先增后减 样例1 输入 7 3 1 4 1 5 9 2 输出 3 样例2 输入 9 10 4 6 3 15 9 1 1 1 ...
- cloudcompare备忘录(1)
1.找点 然后直接在需要的位置上点就会出现这个点的信息了~! 2.想看一个三d的切面时候 先选中切的目标 点击小剪刀~ 点击鼠标左键四次来框选,然后点击鼠标右键确认 再点击这个按钮就切好了
- HOW2J 全套教程整理:Java、前端、数据库、中间件、第三方、项目、面试题
考虑到部分同学寝室会断网,原站的所有的免费内容都提供了一个离线版本以供使用.但是它直接提供了静态页面,并不方便在手机上阅读,因为我将其转换为 EPUB. 目录 HOW2J J2EE 教程.epub H ...