当前位置: 首页 > 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;当我第一次看到这种描…...

【经验贴】运营岗考过CDA数据分析师一级经验分享

终于把CDA一级拿下了&#xff01;查成绩那一刻真的挺开心的&#xff0c;不是多难&#xff0c;但全程自己一点点学出来&#xff0c;特别有成就感。今天就把我整个备考过程老老实实写出来&#xff0c;给正在准备的小伙伴一个参考。一、备考原因我最开始考CDA&#xff0c;完全是因…...

终极ThinkPad风扇控制指南:如何让你的笔记本更安静更高效?

终极ThinkPad风扇控制指南&#xff1a;如何让你的笔记本更安静更高效&#xff1f; 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾经被ThinkPad风扇的噪音困扰…...

本地部署 Ollama + DeepSeek 完整指南:免费跑大模型,数据不出本地

本地部署 Ollama DeepSeek 完整指南&#xff1a;免费跑大模型&#xff0c;数据不出本地不花一分钱&#xff0c;不用科学上网&#xff0c;在自己电脑上跑 DeepSeek 大模型&#xff0c;这篇教程手把手带你搞定一、为什么要本地部署&#xff1f; 很多人用 AI 工具都是调用云端 AP…...

4个步骤让普通用户实现黑苹果EFI自动生成:OpCore Simplify智能工具全解析

4个步骤让普通用户实现黑苹果EFI自动生成&#xff1a;OpCore Simplify智能工具全解析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 如何用智能工具解…...

OpenClaw性能优化:GLM-4.7-Flash长任务链的Token节省技巧

OpenClaw性能优化&#xff1a;GLM-4.7-Flash长任务链的Token节省技巧 1. 问题背景&#xff1a;长任务链的Token消耗困境 上周我尝试用OpenClaw自动化处理一个典型的办公场景&#xff1a;从200页PDF中提取关键数据&#xff0c;整理成Excel表格后发送邮件。整个流程涉及PDF解析…...

三步打造你的专属阅读空间:开源阅读鸿蒙版深度体验

三步打造你的专属阅读空间&#xff1a;开源阅读鸿蒙版深度体验 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 还在为广告弹窗打断阅读体验而烦恼吗&#xff1f;还在为找不到心仪内容而四处奔波吗&am…...

VAP;SNTRVAP

一、基本信息名称&#xff1a;VAP peptide单字母序列&#xff1a;SNTRVAP三字母序列&#xff1a;Ser-Asn-Thr-Arg-Val-Ala-Pro长度&#xff1a;7 个氨基酸&#xff08;7‑mer&#xff09;类型&#xff1a;线性多肽&#xff0c;无 Cys、无 Met、无 Trp&#xff0c;氧化稳定性极佳…...

Qwen3-ASR-1.7B保姆级教程:解决‘识别结果不准确’的5类高频问题

Qwen3-ASR-1.7B保姆级教程&#xff1a;解决‘识别结果不准确’的5类高频问题 1. 引言&#xff1a;为什么你的语音识别总是不准&#xff1f; 你是不是遇到过这样的情况&#xff1a;用语音识别软件录音&#xff0c;结果出来的文字乱七八糟&#xff0c;完全不是你说的内容&#…...

基于dify智能客服工作流的多智能体架构实战:高并发场景下的设计与优化

背景痛点&#xff1a;当智能客服遭遇流量洪峰 最近在负责一个电商大促期间的智能客服系统保障&#xff0c;真切体会到了传统单体智能体架构的“力不从心”。我们的客服机器人基于一个大语言模型构建&#xff0c;平时QPS在50左右时&#xff0c;响应时间&#xff08;RT&#xff0…...

OpenMemories-Tweak完整指南:如何安全解锁索尼相机的隐藏功能

OpenMemories-Tweak完整指南&#xff1a;如何安全解锁索尼相机的隐藏功能 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak OpenMemories-Tweak是一款专为索尼相机设计的开源解…...