SpringBoot3.1.5对应新版本SpringCloud开发(2)-Eureka的负载均衡
Eureka的负载均衡
负载均衡原理
- 负载均衡流程
老版本流程介绍
当order-servic发起的请求进入Ribbon后会被LoadBalancerInterceptor负载均衡拦截器拦截,拦截器获取到请求中的服务名称,交给RibbonLoadBanlancerCient,然后RibbonLoadBanlancerCient会将服务名称当作服务id交给DynamicServerListLoadBanlancer,此时DynamicServerListLoadBanlancer就回去通过eureka-server获取到对应的服务列表,eureka-server会返回真实的服务地址给DynamicServerListLoadBanlancer,然后DynamicServerListLoadBanlancer会通过IRule的实现接口来基于规则选择一种方式获取到返回的真实地址列表中的一个服务返回给RibbonLoadBanlancerCient,然后RibbonLoadBanlancerCient就会通过获取到的真实ip和端口取替换掉原来的服务名称,去发起这个请求获取到对应的数据返回给order-servic
新版本流程介绍
新版本eureka对于netflix包只保留eureka本身,其它组件全部移除,并给出了推荐的替代品。
Netflix | 推荐替代品 | 说明 |
---|---|---|
Hystrix | Resilience4j | Hystrix自己也推荐你使用它代替自己 |
Hystrix Dashboard / Turbine | Micrometer + Monitoring System | 说白了,监控这件事交给更专业的组件去做 |
Ribbon | Spring Cloud Loadbalancer | 忍不住了,Spring终究亲自出手 |
Zuul 1 | Spring Cloud Gateway | 忍不住了,Spring终究亲自出手 |
Archaius 1 | Spring Boot外部化配置 + Spring Cloud配置 | 比Netflix实现的更好、更强大 |
其中,Ribbon被Spring Cloud Loadbalancer替代了,所以新版本的流程将不再通过IRule来选择地址了。
当order-servic发起的请求进入Loadbalancer后会被LoadBalancerInterceptor负载均衡拦截器拦截,拦截器获取到请求中的服务名称,交给LoadBalancerClient,LoadBalancerClient就去通过eureka-server获取到对应的服务列表,并且通过ReactiveLoadBalancer来选择一个并且返回对应的真实地址,然后LoadBalancerClient就会通过获取到的真实ip和端口取替换掉原来的服务名称,去发起这个请求获取到对应的数据返回给order-servic。
需要注意的是,默认ReactiveLoadBalancer只有默认两个实现类,也就意味着它默认只能通过两种方案来选择,一种是随机选择,一种是轮询选择。要做更多的选择需要我们自己编写对应的代码。
SpringBoot3.1.5对应新版本SpringCloud开发(2)-Eureka的负载均衡的更多相关文章
- SpringCloud与微服务Ⅶ --- Feign负载均衡
官方文档:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign 一.Feign是什么 Feign是一 ...
- 从一个开发的角度看负载均衡和LVS--FullNat
从一个开发的角度看负载均衡和LVS 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务 ...
- SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)
1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现 ...
- SpringCloud与Consul集成实现负载均衡
一.背景 SpringCloud微服务目前比较流行,其中大都在使用的服务注册与发现是Eureka,最近研究了Consul的集群搭建,现使用Consul实现服务的负载均衡.其主要拓扑结构如下: 二.Co ...
- SpringCloud之实现客户端的负载均衡Ribbon(二)
一 Ribbon简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为.为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务 ...
- SpringCloud实现集群和负载均衡
Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的. 组成部分 spingcloud的五大神兽 服务发现——Netflix Eureka ...
- 微服务SpringCloud之服务调用与负载均衡
上一篇我们学习了服务的注册与发现,本篇博客是在上一篇的基础上学习服务的调用.上一博客主要创建了Eureka的服务端和一个Client,该Client包含了一个Controller用来提供对外服务供外部 ...
- 七年开发浅谈Nginx负载均衡
一 特点 1.1 应用情况 Nginx做为一个强大的Web服务器软件,具有高性能.高并发性和低内存占用的特点.此外,其也能够提供强大的反向代理功能.俄罗斯大约有超过20%的虚拟主机采用Nginx作为反 ...
- SpringCloud与微服务Ⅵ --- Ribbon负载均衡
一.Ribbon是什么 Sping Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具. 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户 ...
- SpringCloud微服务之Ribbon负载均衡(一)
什么是微服务?什么是SpringCloud? 微服务是一种架构的模式,它提倡将一个应用程序划分成很多个微小的服务,服务与服务之间相互协调.相互配合.每个服务运行都是一个独立的进程,服务与服务之间采用轻 ...
随机推荐
- KafkaConsumerDemo
pom <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>sp ...
- KingbaseES V8R3 表加密
前言 透明加密是指将数据库page加密后写入磁盘,当需要读取对应page时进行加密读取.此过程对于用户是透明, 用户无需干预. 该文档进行数据库V8R3版本测试透明加密功能,需要说明,该版本发布时间早 ...
- Java中IO和NIO的本质和区别
目录 简介 IO的本质 DMA和虚拟地址空间 IO的分类 IO和NIO的区别 总结 简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外 ...
- 诚邀报名丨首期OpenHarmony开发者成长计划分享日
OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划,是一项为了鼓励开发者积极参与开源软件的开发维护.帮助开发者在开源项目中成长的社会 ...
- 深入解析C++的auto自动类型推导
关键字auto在C++98中的语义是定义一个自动生命周期的变量,但因为定义的变量默认就是自动变量,因此这个关键字几乎没有人使用.于是C++标准委员会在C++11标准中改变了auto关键字的语义,使它变 ...
- mongodb基础整理篇————副本原理篇[外篇]
前言 简单介绍一下副本集的原理篇. 正文 下面是几个基本的原理: 副本之间是如何复制的? mongodb 实现此功能的方式是保存操作日志,其中包含了主节点执行的每一次操作,这和mysql比较像. op ...
- xml转voc数据集(含分享数据集)
数据集的链接:行人检测数据集voc数据集(100张) 原始图片和.xml数据目录结构如下: . └── data ├── 003002_0.jpg ├── 003002_0.xml ├── 00300 ...
- sumo简单安装及运行实例
下载解压并添加环境变量 记录一下今天SUMO的安装及使用经验,写的可能比较潦草,没看懂的小伙伴在下方评论,我看到一定会解答. 第一步先打开网址下载sumo: https://sourceforge.n ...
- GaussDB(DWS)基于Flink的实时数仓构建
本文分享自华为云社区<GaussDB(DWS)基于Flink的实时数仓构建>,作者:胡辣汤. 大数据时代,厂商对实时数据分析的诉求越来越强烈,数据分析时效从T+1时效趋向于T+0时效,为了 ...
- Linux下安装配置OpenResty服务器
OpenResty是一款基于Nginx和Lua的高性能Web平台,在nginx基础之上集成了大量的lua库,第三方模块等,以便搭建各种处理高并发.可扩展的Web应用.服务或网关,并且OpenResty ...