Ribbon入门使用 RestTemplate loadbance 负载均衡

news/2025/1/11 21:53:20/

一、概念

1. Ribbon

Ribbon是实现一套客户端,负载均衡的工具,简单的说,ribbon是一个开源项目,主要提供给客户端软件负载均衡算法和服务调用。

负载均衡和服务调用的提供者

主要用于:

  • 负载均衡

    • 将用户的请求平均到分配多个微服务当中,达到服务HA
    • 本地负载均衡: 会在注册中心上的列表进行负载均衡又称为进程内负载均衡
  • 服务调用

对于负载均衡有很多种实现方式,例如我们之前学到过的Nginx的负载均衡,那么Ribbon本地负载均衡Nginx服务端负载均衡有什么区别呢?

  • Nginx服务器负载均衡负责的是接受客户端请求,然后由Nginx实现转发请求,即负载均衡由服务端进行实现
  • Ribbon本地负载均衡,在调用微服务接口时候,会在注册中心将服务列表缓存到JVM本地,从而实现本地实现RPC调用远程服务。

最后简单总结,Ribbon就是负载均衡+RestTemplate

image-20230512143110950

二、RT使用

在我们使用,不需要引如Ribbon依赖,因为Eureka已经中有使用Ribbon了

  • Entity: 返回详细的对象
    • 响应信息
    • 响应码…
  • Object: 可以直接理解为JSON

三、负载均衡规则

IRule规则

  • 轮询
  • 随机
  • 重试
  • 轮询的扩展,轮询看响应速度
  • 过滤故障实例,选择并发量最小的服务
  • 默认规则

image-20230512151716247

1. 规则替换

注意配置规则!!

自定义配置类不能放在@ComponetScan所扫描的包和子包下,否则配置会被所有Ribbon客户端共享,达不到特殊定制化的目的

  1. 远离ComponetScan创建包

创建myrule包;

image-20230523191133311

  1. 添加MySelfRule规则类
@Configuration
public class MyIRule {/*** 开启随机轮询* @return*/@Beanpublic IRule iRule(){return new RandomRule();}
}
  1. 主启动类添加@RibbonClient

image-20230523191322049

注意一个坑点,CLOUD-PAYMENT-SERVICE一定要大写,否则自定义规则无法启动。


2. 负载均衡轮询

原理

负载均衡算法: rest接口第几次请求%集群总数=实际调用服务器的位置下标

image-20230523212333495

JUC(CAS && 自旋锁);

手写源码

等待…


http://www.ppmy.cn/news/107740.html

相关文章

Packet Tracer - 在思科路由器上配置 AAA 认证

Packet Tracer - 在思科路由器上配置 AAA 认证 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 255.255.255.0 不适用 S1 F0/1 S0/0/0 (DCE) 10.1.1.2 255.255.255.252 不适用 不适用 R2 G0/0 192.168.2.1 255.2…

DATAX数据同步工具

1:DATAX概览 ​ DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 1.1:DataX3.0框架设计 DataX本身作为离线数据同步框架&am…

Live800:新的消费趋势下,企业在线客服需哪些改变?

从2021到2023,新模式、新业态、新产业层出不穷,新兴习惯也不断涌现,我们见证了消费品牌的“新物种爆炸”,见证了各行业的线上迁移。 这一切催化消费市场持续更新,消费趋势演变的路径也发生了变化,从以前的…

VH6501使用

目录 1.VH6501接口介绍 2.使用场景 2.1当VH6501作为硬件接口卡作通信/监测使用时,使用CH1的任意接口与总线连接即可 2.2针对单节点干扰时,使用CH1的任意接口与被测节点连接即可 2.3针对多节点干扰时,需要通过CH1的两个接口将VH6501串联到…

生态系统服务评估方法 | 人类活动影响、重大工程实施的生态成效评估(InVEST模型)

以InVEST模型结合实际项目进行由浅入深的实战技术,针对特点及需求进行分析,融合课程体系,对接工作实际项目及论文写作,解决参会者关注的重点及实际项目过程问题,采取逐步延伸的逻辑,不论您是小白亦或是已经…

c# cad二次开发 类库 CAD标注,长度标注

c# cad二次开发 类库 CAD标注,长度标注 using Autodesk.AutoCAD.Runtime; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.Auto…

C++ ---- 模板

目录 泛型编程 函数模板 函数模板语法 模板使用 函数模板原理 函数模板的实例化 隐式实例化 显示实例化 模板参数的匹配原则 类模板 类模板的定义语法 类模板的实例化 非类型模板参数 类模板的特化 全特化 半特化(部分特化) 两个参数偏…

Django之权限控制

一、简介 1.ACL 访问控制列表的权限控制:针对互联网用户的产品 用户表id name password1 zhangsan 123权限表id user_id 权限1 1 评论权限2 1 发抖音权限张三:[评论权限,发抖音权限] 2.RBAC(Role-Based…