Ribbon负载均衡服务调用
一:关于Ribbon
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
Ribbon负载均衡演示(架构说明)
Ribbon在工作时分成两步
第一步先选择 EurekaServer ,它优先选择在同一个区域内负载较少的server.
第二步再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。
其中Ribbon提供了多种策略:比如轮询、随机和根据响应时间加权。
总结:Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。
二:关于负载均衡(LB)
1.LB(负载均衡)
1)LB负载均衡(Load Balance)是什么
简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)。
常见的负载均衡有软件Nginx,LVS,硬件 F5等。
2)Ribbon本地负载均衡客户端 VS Nginx服务端负载均衡区别
Nginx是服务器负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。
Ribbon本地负载均衡,在调用微服务接口时候,会在注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用技术。
3)集中式LB
即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5, 也可以是软件,如nginx), 由该设施负责把访问请求通过某种策略转发至服务的提供方;
4)进程内LB
将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。
Ribbon就属于进程内LB,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。
三:怎么用Ribbon
负载均衡+RestTemplate调用
之前写样例时候没有引入spring-cloud-starter-ribbon也可以使用ribbon,
org.springframework.cloudspring-cloud-starter-netflix-ribbon
spring-cloud-starter-netflix-eureka-client自带了spring-cloud-starter-ribbon引用,
点进spring-cloud-starter-netflix-eureka-client看到确实引入了Ribbon。
四:RestTemplate的使用
1. getForObject方法/getForEntity方法:
1)返回对象为响应体中数据转化成的对象,基本上可以理解为Json
2)返回对象为ResponseEntity对象,包含了响应中的一些重要信息,比如响应头、响应状态码、响应体等
2.postForObject/postForEntity
五: Ribbon核心组件IRule
IRule:根据特定算法中从服务列表中选取一个要访问的服务
1. com.netflix.loadbalancer.RoundRobinRule(轮询)
2.com.netflix.loadbalancer.RandomRule(随机)
3.com.netflix.loadbalancer.RetryRule
(先按照RoundRobinRule的策略获取服务,如果获取服失败则在指定时间内会进行重试,获取可 用的服务)
4.WeightedResponseTimeRule
(对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择)
5.BestAvailableRule
(会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务)
6.AvailabilityFilteringRule
(先过滤掉故障实例,再选择并发较小的实例)
7.ZoneAvoidanceRule
(默认规则,复合判断server所在区域的性能和server的可用性选择服务器)
Ribbon负载均衡服务调用相关推荐
- SpringCloud[04]Ribbon负载均衡服务调用
文章目录 Ribbon负载均衡服务调用 1. 概述 1. Ribbon是什么 2. Ribbon能做什么 2. Ribbon负载均衡演示 1. 架构说明 2. Ribbon的POM依赖 3. Rest ...
- 【详解】Ribbon 负载均衡服务调用原理及默认轮询负载均衡算法源码解析、手写
Ribbon 负载均衡服务调用 一.什么是 Ribbon 二.LB负载均衡(Load Balancer)是什么 1.Ribbon 本地负载均衡客户端 VS Nginx 服务端负载均衡的区别 2.LB负 ...
- ribbon, restTemplate 负载均衡服务调用
ribbon ribbon concept ribbon核心组件IRule 模仿源码重写轮询 ribbon concept spring cloud ribbon 是基于Netflix ribbon实 ...
- SpringCloud微服务-服务注册发现-负载均衡-服务调用-服务降级-服务网关-配置中心-消息总线-消息驱动-链路追踪-alibaba-nacos-sentinel-seata理论原理分析
SpringCloud理论技术 概述 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总 ...
- Spring Cloud Ribbon 负载均衡客户端调用示例
承接 Spring Cloud 最简入门示例 这一篇, 本篇演示如何使用负载均衡客户端 Ribbon 调用在Eureka注册的服务. Ribbon 是什么? Ribbon是Netflix 的开源项目, ...
- Dapr牵手.NET学习笔记:跨物理机负载均衡服务调用
dpar在同一台电脑上不能run 相同appid,这个在上篇说过,所以就用外部负载均衡nginx来对应,那在不同的host中跑同一服务,看看dapr内部的负载均衡是怎么实现的. 说说现有的服务,两个服 ...
- SpringCloud:Ribbon负载均衡(基本使用、 负载均衡、自定义配置、禁用 Eureka 实现 Ribbon 调用)
现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之 ...
- SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册 ...
- Ribbon负载均衡及Feign消费者调用服务
Ribbon负载均衡及Feign消费者调用服务 微服务调用Ribbon 简介 前面讲了eureka服务注册与发现,但是结合eureka集群的服务调用没讲. 这里的话 就要用到Ribbon,结合eure ...
最新文章
- 图像、视频生成大一统!MSRA+北大全华班「女娲」模型怒刷8项SOTA,完虐OpenAI DALL-E...
- java对import语句_Java的import语句 - 不积跬步,无以至千里 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 前端学习(809):api简介
- 1inch将升级至1.1版本并开启新的流动性挖矿计划
- tcp连接时,BROKEN PIPE错误
- asp.net 4高级程序设计( 第4版)文摘
- sql server dba
- Dapper学习 - Dapper.Rainbow(三) - Read
- coreseek mysql.sock_coreseek+lnmp实现站内全文检索
- moxa串口卡Linux驱动,moxa多串口驱动下载
- 51单片机前言知识总结
- 知乎账号登录+验证码
- 【Java项目】java实战宠物领养系统项目
- 网页嵌入Twitter的推文
- blender建模基础操作
- 保险业务与系统——寿险核心系统架构及技术架构
- 秦嘉哲:11.11黄金短线空单布局,黄金解τ策略(黄金早盘最新分析)
- Httpnbsp;416错误解决方案
- 湖南文旅数据中心:湖南文旅数据早知道(9月2日)
- 个人网站引导展示单页源码
热门文章
- unity 图文混排方案
- python中temp的用法_python temp是什么
- 苹果企业号-通过网页下载应用,部署应用分发服务器
- evm?衡そΑ_RGB? CMYK? Α? 什么是图像通道,它们是什么意思?
- 华为android9手机短信不提醒设置,华为手机微信不提醒怎么办 华为收不到微信提示信息多种解决方法...
- 最新电脑版二级计算机视频怎么打开,电脑版钉钉如何打开视频会议中录制的视频...
- 抖音获客源码,短视频获客系统,获客SaaS有标准答案吗?
- Android EditText输入光标居于开头最开始位置
- 苹果Xr用不了浏览器显示服务器已停止响应,苹果xrsafari浏览器用不了?
- R6-4 sdust-Java-可实现多种排序的Book类