一:关于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负载均衡服务调用相关推荐

  1. SpringCloud[04]Ribbon负载均衡服务调用

    文章目录 Ribbon负载均衡服务调用 1. 概述 1. Ribbon是什么 2. Ribbon能做什么 2. Ribbon负载均衡演示 1. 架构说明 2. Ribbon的POM依赖 3. Rest ...

  2. 【详解】Ribbon 负载均衡服务调用原理及默认轮询负载均衡算法源码解析、手写

    Ribbon 负载均衡服务调用 一.什么是 Ribbon 二.LB负载均衡(Load Balancer)是什么 1.Ribbon 本地负载均衡客户端 VS Nginx 服务端负载均衡的区别 2.LB负 ...

  3. ribbon, restTemplate 负载均衡服务调用

    ribbon ribbon concept ribbon核心组件IRule 模仿源码重写轮询 ribbon concept spring cloud ribbon 是基于Netflix ribbon实 ...

  4. SpringCloud微服务-服务注册发现-负载均衡-服务调用-服务降级-服务网关-配置中心-消息总线-消息驱动-链路追踪-alibaba-nacos-sentinel-seata理论原理分析

    SpringCloud理论技术 概述 ​ Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总 ...

  5. Spring Cloud Ribbon 负载均衡客户端调用示例

    承接 Spring Cloud 最简入门示例 这一篇, 本篇演示如何使用负载均衡客户端 Ribbon 调用在Eureka注册的服务. Ribbon 是什么? Ribbon是Netflix 的开源项目, ...

  6. Dapr牵手.NET学习笔记:跨物理机负载均衡服务调用

    dpar在同一台电脑上不能run 相同appid,这个在上篇说过,所以就用外部负载均衡nginx来对应,那在不同的host中跑同一服务,看看dapr内部的负载均衡是怎么实现的. 说说现有的服务,两个服 ...

  7. SpringCloud:Ribbon负载均衡(基本使用、 负载均衡、自定义配置、禁用 Eureka 实现 Ribbon 调用)

    现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之 ...

  8. SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)...

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册 ...

  9. Ribbon负载均衡及Feign消费者调用服务

    Ribbon负载均衡及Feign消费者调用服务 微服务调用Ribbon 简介 前面讲了eureka服务注册与发现,但是结合eureka集群的服务调用没讲. 这里的话 就要用到Ribbon,结合eure ...

最新文章

  1. 图像、视频生成大一统!MSRA+北大全华班「女娲」模型怒刷8项SOTA,完虐OpenAI DALL-E...
  2. java对import语句_Java的import语句 - 不积跬步,无以至千里 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  3. 前端学习(809):api简介
  4. 1inch将升级至1.1版本并开启新的流动性挖矿计划
  5. tcp连接时,BROKEN PIPE错误
  6. asp.net 4高级程序设计( 第4版)文摘
  7. sql server dba
  8. Dapper学习 - Dapper.Rainbow(三) - Read
  9. coreseek mysql.sock_coreseek+lnmp实现站内全文检索
  10. moxa串口卡Linux驱动,moxa多串口驱动下载
  11. 51单片机前言知识总结
  12. 知乎账号登录+验证码
  13. 【Java项目】java实战宠物领养系统项目
  14. 网页嵌入Twitter的推文
  15. blender建模基础操作
  16. 保险业务与系统——寿险核心系统架构及技术架构
  17. 秦嘉哲:11.11黄金短线空单布局,黄金解τ策略(黄金早盘最新分析)
  18. Httpnbsp;416错误解决方案
  19. 湖南文旅数据中心:湖南文旅数据早知道(9月2日)
  20. 个人网站引导展示单页源码

热门文章

  1. unity 图文混排方案
  2. python中temp的用法_python temp是什么
  3. 苹果企业号-通过网页下载应用,部署应用分发服务器
  4. evm?衡そΑ_RGB? CMYK? Α? 什么是图像通道,它们是什么意思?
  5. 华为android9手机短信不提醒设置,华为手机微信不提醒怎么办 华为收不到微信提示信息多种解决方法...
  6. 最新电脑版二级计算机视频怎么打开,电脑版钉钉如何打开视频会议中录制的视频...
  7. 抖音获客源码,短视频获客系统,获客SaaS有标准答案吗?
  8. Android EditText输入光标居于开头最开始位置
  9. 苹果Xr用不了浏览器显示服务器已停止响应,苹果xrsafari浏览器用不了?
  10. R6-4 sdust-Java-可实现多种排序的Book类