pring cloud Ribbon 是基于Netfilix Ribbon 实现一套 客户端 负载均衡工具。

简单的说, Ribbon 是 Netflix 发布开源项目。 主要是提供客户端软件负载均衡算法和服务调用。

Ribbon客户端提供一系列完善的配置项如连接超时。 重连等。 简单的来说。

就是在配置文件中加入一个LoadBalanced(简称LB),后面所有的机器ribbon自动会帮我们基于某种规则(轮询 随机连接)进行连接机器

  • 负载均衡

  • 容错能力

  • 异步和响应模型中的多种协议(HTTP,TCP,UDP)支持

  • 缓存和批处理

LB负载均衡

  1. 集中式LB : 服务的消费和提供方之间使用独立的lb设施 (可是硬件, nginx ),由该设施负责把访问的请求通过某种策略转发至服务提供方

  2. 进程内LB: 将Lb逻辑集成到消费方, 消费方从服务注册中心获得由哪些地址可以用,然后自己在从这些地址中选择一个合适的服务器。

Ribbon 就是属于进程内LB, 他是一个类库。 集成与消费方进程。 通过消费方获取服务方的地址。

在实例化RestTemplate时使用@LoadBalanced,服务地址直接可以使用服务名。

负载均衡几种策略:

RoundRobinRule - 轮询

RandomRule - 随机

RetryRule - 先按照轮询 的策略获取服务, 如果获取失败则在指定的时间内进行充实获取可用的服务

WeightedResponseTimeRule - 对轮询的拓展,响应速度越快的实列选择权重越大。 越容易被选择

BestAvailableRule - 会先过滤用于多次访问失败故障处于断路器跳闸的服务。 然后选择 一个并发最小的服务

AvailabilityFilteringRule - 先过滤掉故障实例,在选择并发较小的实例

ZoneAvoidanceRule - 默认规则。 复合判断server所在区域性能和server的可用性选择服务器

自定义一个负载均衡的规则类 并且这个类不能和ComponentScan同包或者子类。

/**
* @Author kalista
* @Description 自定义负载均衡路由规则类
* @Date 2020/8/21 14:20
**/
@Configuration
public class MySelfRule {
@Bean
public IRule myRule(){
return new RandomRule();
}
}

主启动类添加@RibbonClient

@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MySelfRule.class)
@SpringBootApplication
@Slf4j
@EnableEurekaClient
public class OrderMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class, args);
log.info("*************** OrderMain8000 启动成功 **************");
}
}

这样,一个随机负载均衡就实现了,在eureka上注册的服务可以随机调用

Ribbon负载均衡调用的更多相关文章

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

    1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现 ...

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

    微服务调用Ribbon 简介 前面讲了eureka服务注册与发现,但是结合eureka集群的服务调用没讲. 这里的话 就要用到Ribbon,结合eureka,来实现服务的调用: Ribbon是Netf ...

  3. SpringCloud之Ribbon负载均衡及Feign消费者调用服务

    目的: 微服务调用Ribbon Ribbon负载均衡 Feign简介及应用 微服务调用Ribbon Ribbon简介 1. 负载均衡框架,支持可插拔式的负载均衡规则 2. 支持多种协议,如HTTP.U ...

  4. 四. Ribbon负载均衡服务调用

    1. 概述 1.1 Ribbon是什么 SpringCloud Ribbon是基于Netflix Ribbon实现的一套客户端,是负载均衡的工具. Ribbon是Netflix发布的开源项目,主要功能 ...

  5. SpringCloud系列——Ribbon 负载均衡

    前言 Ribbon是一个客户端负载均衡器,它提供了对HTTP和TCP客户端的行为的大量控制.我们在上篇(猛戳:SpringCloud系列——Feign 服务调用)已经实现了多个服务之间的Feign调用 ...

  6. Spring Cloud微服务Ribbon负载均衡/Zuul网关使用

    客户端负载均衡,当服务节点出现问题时进行调节或是在正常情况下进行 服务调度.所谓的负载均衡,就是当服务提供的数量和调用方对服务进行 取舍的调节问题,在spring cloud中是通过Ribbon来解决 ...

  7. spring-cloud: eureka之:ribbon负载均衡自定义配置(二)

    spring-cloud: eureka之:ribbon负载均衡自定义配置(二) 有默认配置的话基本上就是轮询接口,现在我们改用自定义配置,同时支持:轮询,随机接口读取 准备工作: 1.eureka服 ...

  8. spring-cloud: eureka之:ribbon负载均衡配置(一)

    spring-cloud: eureka之:ribbon负载均衡配置(一) 比如我有: 一个eureka服务:8761 两个user用户服务: 7900/7901端口 一个movie服务:8010 1 ...

  9. Ribbon负载均衡策略与自定义配置new

    Ribbon负载均衡策略 配置 对调用的某个服务启用某种负载策略 1)通过配置文件配置 hello: ribbon: NFLoadBalancerRuleClassName:com.netflix.l ...

  10. Ribbon负载均衡策略与自定义配置

    Ribbon负载均衡策略 配置 对调用的某个服务启用某种负载策略 1)通过配置文件配置 hello: ribbon: NFLoadBalancerRuleClassName:com.netflix.l ...

随机推荐

  1. 关于服务器上的XML

    服务器上的 XML XML 文件是类似 HTML 文件的纯文本文件. XML 能够通过标准的 Web 服务器轻松地存储和生成. 在服务器上存储 XML 文件 XML 文件在 Internet 服务器上 ...

  2. adb的详解

    1.何为adb adb(Android Debug Bridge)是android sdk的一个工具 adb是用来连接安卓手机和pc端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行 ...

  3. linux系统过滤文件,并且通过时间对过滤的文件排序

    命令如下所示: find /home/deep/tf/20220601/study -name '*.h5' |xargs ls -lta

  4. shardingsphere 5.0.0

    pom <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sh ...

  5. java SE01

    目录 一.基础语言 1. 注释 a. 行内注释 b. 多行注释 c. 文档注释 2. 关键字 3. 数据类型 a.基本数据类型 b.引用数据类型 c. 类型转换 4. 变量类型 a. 类变量 b. 实 ...

  6. Datax-web的入门使用

    在学习入门之前,需要先启动Datax-web(Datax-web入门配置与启动) 1.登录 账户:admin 密码:123456 2.创建项目 3.新建执行器 项目中有默认的,可以直接使用 4.新建数 ...

  7. nginx客户端真实IP配置

    https://www.cnblogs.com/kevingrace/p/8269955.html include mime.types; default_type application/octet ...

  8. vue-cli 根据不同的环境打包

    根据项目需要,通过vue-cli中的npm run build 打包到不同的环境,例如测试环境,预发布环境,线上环境,根据process.env分别进行接口的调用 vue-cli 中build中bui ...

  9. hutool调用第三方接口上传文件和下载文件

    1.上传文件接口例子(本地接口) 2.第三方接口 3.调用第三方接口下载文件 4.第三方接口 5.多个文件生成压缩文件

  10. Python170道面试题

    1. 谈谈对 Python 和其他语言的区别 答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植.可扩展,可嵌入的解释型编程语言,属于 ...