SpringCloud_服务调用_Ribbon概述以及使用(一)

news2024/11/29 10:50:12

SpringCloud_负载均衡_Ribbon(一)

概述
Ribbbon负载均衡演示
Ribbbon核心组件IRule
Ribbbon负载均衡算法

概述

Ribbbon是一套客户端 负载均衡的工具
提供客户端的软件负载均衡算法和服务调用

地址:

https://github.com/Netflix/ribbon/wiki/Getting-Started

目前这几个部分还在大规模使用。
在这里插入图片描述

LB负载均衡(Load Balance)是什么

将请求平坦的分配到多个服务器上,从而达到系统的高可用。
常见的负载均衡软件:Nginx、LVS、硬件F5等。

Ribbon本地负载均衡客户端 VS Nginx服务端负载均衡区别

Nginx是服务器负载均衡,请求都交给Nginx,由Nginx实现转发请求。
Ribbon本地负载均衡,在调用微服务接口时,会在注册中心上获取注册信息服务列表,并缓存到JVM本地,从而在本地实现RPC远程服务调用技术。

负载均衡(LB)

分为集中式LB
以及进程内LB

集中式LB:在服务的消费放和提供方之间使用独立的LB设施(可以是硬件,如F5,也可以是软件,如Nginx),由该设施负责把访问请求通过某种策略转发至服务的提供方。
进程内LB:将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。

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

Ribbon负载均衡演示

Ribbon就是一个软负载均衡的客户端组件,
他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。

分成两步:
1.先选择EurekaServer,它优先选择在同一个区域内负载较少的server
2.根据用户指定的策略,在从server取到的服务注册列表中,选择一个地址。
比如轮询、随机、和根据响应时间加权

没有引入spring-cloud-starter-netflix-ribbon,Ribbon也可以使用

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>

原因:
eureka-client已经自动引入ribbon
在这里插入图片描述

因此不需要额外的引入依赖,如果自己想引入也没有关系。

ribbon = 负载均衡 + RestTemplate

方法调用

Get请求/Post请求
getForObject方法/getForEntity方法:

getForObject方法/getForEntity方法:
(getForObject方法):返回对象为响应体中数据转换成的对象,基本上可以理解为Json
(getForEntity方法):返回对象为ReponseEntity对象,包含了响应中的一些重要信息,比如响应头、响应状态码、响应体等

postForObject/postForEntity 此处post和get用法一致。只不过是一个post请求,一个get请求
ReponseEntity可以进行一些状态码等信息的判断,如果需要更详细的信息就使用Entity。
更推荐使用getForObject,因为现在都是json化
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver报错问题分析

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver 这个错误通常意味着应用程序服务器在尝试在只读模式下访问数据库时出现了问题&#xff0c;该错误与事务处理有关。通常出现在JDBC连接对象或事务对象的创建或状态查询的过程中。 在JDBC中&#xff0c;只读事务需要…

【机器视觉2】单目相机内外参数标定

单目相机内外参数标定 1. 标定参照物概述2. 张正友平面模板标定法 1. 标定参照物概述 标定相机内外参数需要获取场景和图像间多个坐标对。场景坐标点直接从标定参照物获取&#xff0c;图像坐标点从图像中获取。 标定参照物有二维、三维等&#xff0c;如下图所示&#xff1a; …

【linux】冯诺依曼体系+操作系统

我们使用的计算机都是由一个个硬件所组成的&#xff0c;那么如何有条不紊的运行呢&#xff1f;那是因为有冯诺依曼体系约束着硬件&#xff0c;而操作系统来管理着他们&#xff0c;从而使得计算机的硬件和软件完美结合。 一、冯诺依曼体系 首先我们得了解什么是冯诺依曼体系结构…

万字长文 | ChatGPT的工作原理(一)

ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西&#xff0c;这非常了不起&#xff0c;而且出乎意料。但它是如何做到的&#xff1f;为什么它能发挥作用&#xff1f;我在这里的目的是大致介绍一下 ChatGPT 内部的情况&#xff0c;然后探讨一下为什么它能很好地生成…

Sharding-JDBC之绑定表(关联表)

目录 一、简介二、maven依赖三、数据库3.1、创建数据库3.2、创建表 四、配置&#xff08;二选一&#xff09;4.1、properties配置4.2、yml配置 五、实现5.1、实体层5.2、持久层5.3、服务层5.4、测试类5.4.1、保存订单数据5.4.2、查询订单详情数据&#xff08;关联表&#xff09…

拓扑排序在处理树形关系结构中的应用

Preface 偶然在QQ上的一个交流群中看到了一位群友的棘手需求。互联网开发中&#xff0c;数据的落盘存储通常在MySQL中。MySQL是一种关系型数据库&#xff0c;以“行”为基本的存储单元&#xff0c;然后通过外键等建立数据实体模型之间的联系。 但有些数据的存储&#xff0c;在…

波奇学C++:友元函数,友元类,内部类,匿名对象,优化构造

友元函数/类 &#xff1a;突破访问限定符&#xff0c;允许非同一个类的函数或者类访私有成员变量。 class A { public:A():_a(0),_b(1){cout << "A()" << endl;} private:int _a 0;int _b 1; }; void fun(const A& a) {cout << a._a <&l…

canal学习-运行canal-adapter源码并记录解决报错问题(一)

运行canal-adapter 1. 下载canal源码1.1 下载源码并安装好环境1.2 查看目录结构 2.项目运行2.1 项目打包2.2 项目打包可能遇到的问题&#xff1a;1.Failure to find com.alibaba.otter:connector.tcp:jar:jar-with-dependencies:1.1.52.com.alibaba.druid.pool.DruidDataSource…

HTTP协议与TCP协议

HTTP协议 1. HTTP有哪些⽅法&#xff1f; HTTP 1.0 标准中&#xff0c;定义了3种请求⽅法&#xff1a;GET、POST、HEAD HTTP 1.1 标准中&#xff0c;新增了请求⽅法&#xff1a;PUT、PATCH、DELETE、OPTIONS、TRACE、CONNECT 2. 各个HTTP方法的具体作用是什么&#xff1f; 方…

量子计算:揭开未来计算世界的面纱

随着科技的飞速发展&#xff0c;计算能力的提升成为人们关注的焦点之一。而在这个领域中&#xff0c;量子计算正逐渐成为备受瞩目的新星。量子计算利用了量子力学的原理&#xff0c;与传统计算方式有着根本的不同。在传统计算中&#xff0c;信息以比特的形式表示&#xff0c;而…

COMSOL光电专题第三十三期(线上),COMSOL声学(北京线下)专题线上通知

背景&#xff1a; COMSOL多物理场仿真软件以高效的计算性能和杰出的多场耦合分析能力实现了精确的数值仿真&#xff0c;已被广泛应用于各个领域的科学研究以及工程计算&#xff0c;为工程界和科学界解决了复杂的多物理场建模问题。COMSOL内嵌的声学模块可以方便地进行多孔声学…

AI技术如何助力合同智能管理?

近年来&#xff0c;合同管理领域开始大规模应用AI技术&#xff0c;今天我们来关注下AI技术如何助力合同智能管理&#xff1f; 传统的合同管理系统&#xff0c;一般都是流程管理&#xff0c;随着AI技术的快速发展&#xff0c;AI技术已经成功应用到了合同全生命周期管理的各阶段…

计算机网络 三 (数据链路层)上

数据链路层 数据链路层的概述 基本概念 数据链路层是OSI参考模型中的第二层&#xff0c;它主要负责在物理层上提供可靠的数据传输服务&#xff0c;使得相邻节点间的数据传输能够实现。 数据链路层的基本概念如下&#xff1a; 帧&#xff1a;数据链路层数据传输的基本单位是…

Redis持久化:RDB和AOF(版本redis 7.0)

什么是持久化&#xff1f; 学过计算机基础的都知道以一种磁盘&#xff0c;只要关机&#xff0c;那么磁盘的内容都会被清空&#xff0c;这种磁盘称为内存&#xff0c;而Redis则是一种内存数据库&#xff0c;redis中的数据也都存储在磁盘中&#xff0c;如果服务器中进程被关掉&am…

麻了,真的不想做测试了...

前言 有不少技术友在测试群里讨论&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了,考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些测试工程师了。 这不&#xff0c;为了帮大家节约时…

Mathtype修改硕士论文公式格式

Mathtype修改硕士论文格式 1将word格式的公式变为mathtype格式1选中公式2点击mathtype中的转换公式 2修改mathtype格式的公式文字版式 1将word格式的公式变为mathtype格式 1选中公式 如果不选公式默认全文所有公式或者指定的公式。 2点击mathtype中的转换公式 选择要转换的…

汽车功能安全

前言 近些年来&#xff0c;功能安全在汽车传统底盘域和动力域的应用已较为成熟&#xff0c;各大汽车企业功能安全意识也逐渐增强。在辅助驾驶和自动驾驶爆发式增长的大趋势下&#xff0c;现代汽车的功能安全在目前尤为复杂的电子电气系统中就显得更为重要&#xff0c;功能安全…

MySQL---存储过程流程控制(判断(if、case)、循环(while、repeat、loop))

1. if判断 IF语句包含多个条件判断&#xff0c;根据结果为TRUE、FALSE执行语句&#xff0c;与编程语言中的if、else if、else 语法类似&#xff0c;其语法格式如下&#xff1a; -- 语法 if search_condition_1 then statement_list_1[elseif search_condition_2 then statem…

十八、Stream 流

目录 1、为什么要引入SpringCloud Stream 2、SpringCloud Stream简介 2.1、标准MQ架构图 2.2、SpringCloud Stream架构图 2.3、SpringCloud Stream处理流程 3、如何使用SpringCloud Stream 3.1、创建springcloud-stream-sender项目&#xff08;消息生产者&#xff09; …

SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二)

SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二) Ribbon核心组件IRule IRule:根据特定算法中从服务列表中选取一个要访问的服务 IRule接口有多种实现&#xff1a; Ribbon自带的7种负载规则 com.netflix.loadbalancer.RoundRobinRule 轮询 com.netflix.loadbalancer.Ra…