当前位置: 首页 > news >正文

Spring-Cloud-Gateway集成Nacos如何做负载均衡?

spring-cloud-alibaba的低版本

如果所用的SpringCloud和Nacos的版本信息如下:

<spring-cloud.version>Hoxton.SR10</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>

网关的依赖如下:

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
</dependencies>

看下它是如何做路由转发的。
org.springframework.cloud.gateway.handler.FilteringWebHandler.GatewayFilterAdapter#filter()上打断点:
在这里插入图片描述

继续往下执行:在这里插入图片描述
这里就把请求匹配到了路由表中的某条路由记录,然后把请求的url做了重写。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
以上可以看出来,底层还是用ribbon做的负载均衡。

从nacos的依赖中也能看出来:
在这里插入图片描述

spring-cloud-alibaba的高版本

Springcloud2020开始弃用了Ribbon,因此Alibaba在2021版本nacos中删除了Ribbon的jar包,改用SpringCloudLoadbalancer 来实现负载均衡,因此如果SpringCloud的版本和SpringCloudAlibaba的版本是如下

<spring-cloud.version>2021.0.5</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>

gateway是需要单独引入负载均衡组件的:

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
</dependencies>

gateway的配置:

spring:cloud:nacos:discovery:server-addr: localhost:8848loadbalancer:enabled: true # 默认就是truenacos:enabled: true # 默认没有开启gateway:discovery:locator:# true 默认路由机制# 开启服务注册和发现功能,服务网关自动根据服务发现为每一个服务创建一个路由,这个路由将以(大写服务名)开头的请求路径转发到对应的服务中# 访问地址:127.0.0.1:8800/大写服务名/服务上下文/Controller/Method## false 关闭默认路由机制,需要手动配置routes,默认通过路由名进行跳转的方式将失效,将请求路径上的服务名配置为小写# 访问地址:127.0.0.1:8800/小写写服务名/服务上下文/Controller/Methodenabled: false # 默认就是falselower-case-service-id: trueroutes:- id: userserviceuri: lb://userservicepredicates:- Path=/user/**

同样打断点跟一下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
测试代码下载:https://github.com/xjs1919/enumdemo/tree/master/gateway-demo

相关文章:

Spring-Cloud-Gateway集成Nacos如何做负载均衡?

spring-cloud-alibaba的低版本 如果所用的SpringCloud和Nacos的版本信息如下&#xff1a; <spring-cloud.version>Hoxton.SR10</spring-cloud.version> <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>网关的依赖如下&…...

【数据挖掘与商务智能决策】第四章 逻辑回归模型

逻辑回归模型算法原理 逻辑回归模型的数学原理 %matplotlib inline# 补充知识点:Sigmoid函数绘制 import matplotlib.pyplot as plt import numpy as npx = np.linspace(-6, 6) # 通过linspace()函数生成-6到6的等差数列,默认50个数 y = 1.0...

滚动升级回滚

滚动升级回滚 ReplicationController 资源文件 apiVersion: v1 kind: ReplicationController metadata:name: kubia-v1labels:app: kubia spec:replicas: 3template:metadata:name: kubialabels:app: kubiaspec:containers:- image: luksa/kubia:v1name: nodejes --- apiVer…...

2023/3/6 VUE - 组件传值【通信】方式

1 父亲传子代传值【子代使用父代的数据】 1.1 props传值 父亲给儿子传值&#xff1a; 爷爷给孙子传值&#xff1a; 这个props传值的方式&#xff0c;只能一代一代的往下传&#xff0c;不能跨代传值。 有一个问题&#xff1a;子组件不能修改父组件的值&#xff1a; 1.2 …...

MedCalc v20.217 医学ROC曲线统计分析参考软件

MedCalc是一款医学 ROC 曲线统计软件,用于ROC曲线分析的参考软件,医学工作者设计的医学计算器,功能齐全。它可以帮助医生快速作出普通的医学计算,从而对症下药。提供超过76种常用的规则和方法,包括:病人数据、单位参数、费用计算等等。甚至可以将图形另存为BMP,PNG,GIF…...

欢乐消除开心假日协议解密

欢乐消除开心假日协议解密协/议/流/量/解/密分析欢乐消除开心假日这款游戏流量的协议加密方式。序欢乐消除开心假日是一款合成模拟家装的游戏&#xff0c;在这个游戏中&#xff0c;你将成为一位充满热情的设计师&#xff0c;与好友一起经营工作室。你需要根据客户的需求重新设计…...

Android Service知识

一. 概览 Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动&#xff0c;而且即使用户切换到其他应用&#xff0c;服务仍将在后台继续运行。此外&#xff0c;组件可通过绑定到服务与之进行交互&#xff0c;甚至是执行进程间通信 (IPC…...

axios的get请求传入数组参数后端无法接收的问题

问题描述 在做项目时&#xff0c;需要把前端的数组通过axios的get请求发送到后端处理&#xff0c;于是像这样直接发送&#xff1a; axios.get(url,{params:{arr: update_arr}})这时在后端接收后报错说&#xff1a;没有 ‘arr’ 这个key&#xff1a; arr request.GET[arr] pr…...

奖金发放-课后程序(Python程序开发案例教程-黑马程序员编著-第3章-课后作业)

实例2&#xff1a;奖金发放 某企业发放的奖金是根据利润和提成计算的&#xff0c;其规则如表1所示。 表1 奖金发放规则 利润&#xff08;万元&#xff09; 奖金提成&#xff08;%&#xff09; I≤10 10% 10&#xff1c;I≤20 7.5% 20&#xff1c;I≤20 5% 10&#xf…...

第十四届蓝桥杯第三期模拟赛 【python】

第十四届蓝桥杯第三期模拟赛 【python】 文章目录第十四届蓝桥杯第三期模拟赛 【python】✨最小的十六进制&#xff08;python的16进制&#xff09;❓️问题描述答案提交&#x1f9e0;思路&#x1f5a5;︎参考答案✨Excel的列&#xff08;进制转化&#xff09;❓️问题描述答案…...

Python——函数(重点内容)

函数 函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。 函数能提高应用的模块性&#xff0c;和代码的重复利用率。你已经知道Python提供了许多内建函数&#xff0c;比如print()。但你也可以自己创建函数&#xff0c;这被叫…...

2023年如何在Google做外贸

2023年如何在Google做外贸 答案是&#xff1a;利用谷歌SEO获取自然流量促进成交。 随着全球化和数字化的发展&#xff0c;外贸行业越来越重视互联网的渠道拓展。 在Google搜索引擎上做好SEO优化&#xff0c;是吸引国际客户和提高品牌知名度的关键。 本文将探讨2023年如何在…...

Linux操作系统学习(线程池)

文章目录线程池线程池原理代码示例单例模式饿汉模式懒汉模式饿汉懒汉对比其他的锁线程池 线程池原理 ​ 线程池是一种线程使用模式。在多线程应用中&#xff0c;若每有一个任务&#xff0c;线程就去调度相应的函数去创建&#xff0c;当任务过多时&#xff0c;每次都去调度且每…...

JVM运行时数据区—Java虚拟机栈

虚拟机栈的背景 由于跨平台性的设计&#xff0c;java的指令都是根据栈来设计的。不同平台CPU架构不同&#xff0c;所以不能设计为基于寄存器的。 根据栈设计的优点是跨平台&#xff0c;指令集小&#xff0c;编译器容易实现&#xff0c;缺点是性能下降&#xff0c;实现同样的功…...

gitlab中文社区

1、获取gitlab中文社区项目 中文社区版项目&#xff1a;https://gitlab.com/xhang/gitlab 2、克隆中文仓库 git clone https://gitlab.com/xhang/gitlab.git 3、查看gitlab版本 diff 获取对应版本的中文 head -1 /opt/gitlab/version-manifest.txt #安装的是gitlab-ce…...

深度学习-第T2周——彩色图片分类

深度学习-第T2周——彩色图片分类深度学习-第P1周——实现mnist手写数字识别一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、归一化4、可视化图片四、构建简单的CNN网络五、编译并训练模型1、设置超参数2、编写训练函数六、预测七、模型评估深度学习-…...

GNU C编译器扩展关键字:__attribute__

目录 一、section 二、aligned 三、packed 四、format 五、weak 六、alias 七、noinline和always_inline GNU C增加了一个__attribute__关键字用来声明一个函数、变量或类型的特殊属性&#xff0c;可以知道编译器在编译过程中进行特定方面的优化或代码检查。 目前&…...

C++基础 | 从C到C++快速过渡

一、开发环境 c使用的编译器是g。 vim或者vscodeclionVS 二、C版本的Hello World /*** brief c版本helloworld示例* author Mculover666* date 2023/2/26*/#include <iostream> using namespace std;int main() {int a 1;double b 3.14;char c[] "str…...

【C++】仿函数 -- priority_queue

文章目录一、priority_queue 的介绍和使用1、priority_queue 的介绍2、priority_queue 的使用3、priority_queue 相关 OJ 题二、仿函数1、什么是仿函数2、仿函数的作用三、priority_queue 的模拟实现一、priority_queue 的介绍和使用 1、priority_queue 的介绍 priority_queu…...

盘一盘C++的类型描述符(一)

前言 C的类型描述方式是从C语言继承来的&#xff0c;并且进行了扩充&#xff08;例如引用、非静态成员函数、模板实参等&#xff09;。但由于C语言中的类型描述方式就略微有点「反人类」&#xff0c;再经C扩展后就有点「反碳基生物」了~ 是的&#xff0c;当我第一次看到这种描…...

从最小安装到图形桌面:CentOS 9 Stream 安装后的软件包管理与GUI环境搭建

从最小安装到图形桌面&#xff1a;CentOS 9 Stream 安装后的软件包管理与GUI环境搭建 当你第一次启动刚安装好的CentOS 9 Stream最小化系统时&#xff0c;面对那个简洁到近乎"原始"的命令行界面&#xff0c;可能会感到一丝不适应。别担心&#xff0c;这正是Linux赋予…...

3分钟掌握FSearch:Linux系统文件搜索效率提升300%的终极方案

3分钟掌握FSearch&#xff1a;Linux系统文件搜索效率提升300%的终极方案 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 还在为Linux系统中寻找文件而烦恼吗&#xff…...

MongoDB副本集在网络闪断后如何快速恢复_重连机制与心跳超时(electionTimeoutMillis).txt

...

SAP ABAP文件处理避坑指南:从FILE事务码到OPEN DATASET的完整配置流程

SAP ABAP服务器端文件处理实战&#xff1a;从逻辑路径配置到OPEN DATASET高阶应用 在SAP系统集成与数据交换场景中&#xff0c;文件处理能力直接影响着接口稳定性与运维效率。不同于常规编程语言的文件操作&#xff0c;ABAP环境下的服务器端文件处理涉及逻辑路径映射、平台适配…...

Java开发者如何用Dify-Java-Client快速集成AI能力到Spring Boot项目

1. 项目概述&#xff1a;一个面向Java开发者的AI应用构建利器如果你正在用Java技术栈&#xff0c;同时又对当前火热的AI应用开发感兴趣&#xff0c;那么你很可能遇到过这样的困境&#xff1a;市面上主流的AI应用开发框架和客户端库&#xff0c;比如OpenAI的官方SDK、LangChain等…...

计算机光标自动化控制:从模拟点击到智能交互的技术实现与应用

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Computer-cursor-tech-support”。初看这个标题&#xff0c;你可能会有点摸不着头脑&#xff1a;电脑光标和技术支持&#xff0c;这两者是怎么联系到一起的&#xff1f;是开发了一个新的光标样式&am…...

TVA 在宠物混合监护场景中的创新应用(4)

重磅预告&#xff1a;本专栏将独家连载新书《智能体视觉技术与应用》&#xff08;系列丛书&#xff09;部分精华内容&#xff0c;该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著&#xff0c;特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。…...

数据中心网络卡顿?可能是你的链路聚合负载均衡没配对!详解华为交换机src-dst-ip哈希算法

数据中心网络卡顿&#xff1f;华为交换机src-dst-ip哈希算法深度调优指南 在数据中心网络运维中&#xff0c;链路聚合&#xff08;Link Aggregation&#xff09;技术早已成为提升带宽和可靠性的标配方案。但许多工程师在完成基础配置后&#xff0c;常常遇到一个令人头疼的现象&…...

如何用ComfyUI-WanVideoWrapper开启你的AI动态内容创作之旅

如何用ComfyUI-WanVideoWrapper开启你的AI动态内容创作之旅 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 在AI视频生成的世界里&#xff0c;你是否曾想象过将文字描述转化为生动的动态画面&am…...

LaTeX引用中文文献总出乱码?可能是你的.bib文件编码和编译顺序没搞对

LaTeX中文文献引用乱码全解析&#xff1a;从编码原理到实战排错 当你熬夜赶论文&#xff0c;终于把参考文献列表整理进.bib文件&#xff0c;满心期待地按下编译键——结果引用位置跳出一串问号&#xff0c;参考文献列表变成乱码战场。这种崩溃瞬间&#xff0c;每个用LaTeX写过中…...