SpringCloud:Spring Cloud Gateway中如何配置LoadBalancer

Spring Cloud Gateway:Actuator API(执行器API) /gateway执行器端点允许您监视和与Spring Cloud Gateway应用程序进行交互。为了远程访问,该端点必须在应用程序属性中启用并通过HTTP或JMX公开。 阅读详情

要在Spring-Cloud-Gateway中配置LoadBalancer,需要用到spring-cloud-starter-netflix-ribbon,因此需要将它引入。

pom.xml:

java代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AppBoot {
	
	public static void main(String[] args) {
		SpringApplication.run(AppBoot.class, args);
	}
}

application.properties:

server.port=8080
spring.application.name=gateway_server

# default true
management.endpoint.gateway.enabled=true
management.endpoints.web.exposure.include=*

logging.level.org.springframework.cloud.gateway=TRACE

# default true
ribbon.eureka.enabled=false

# default true
spring.cloud.loadbalancer.ribbon.enabled=true
# default false
spring.cloud.gateway.actuator.verbose.enabled=true

########################################################################
spring.cloud.gateway.routes[0].id=my_route
spring.cloud.gateway.routes[0].uri=lb://my-load-balanced-service
spring.cloud.gateway.routes[0].predicates[0]=Path=/test/**

my-load-balanced-service.ribbon.listOfServers=localhost:9090, 127.0.0.1:9090
my-load-balanced-service.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule

或者application.yaml:

server:
port: 8080

spring:
application:
name: gateway_server

spring:
cloud:
gateway:
routes:
- id: my_route
uri: lb://my-load-balanced-service
predicates:
- Path=/test/**

my-load-balanced-service:
ribbon:
listOfServers: localhost:9090, 127.0.0.1:9090
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule

可以从com.netflix.client.config.CommonClientConfigKey这类中找到其它可配置的参数。

注意:lb://后面的一定不要使用下划线,即不要使用比如:my_load_balanced_service这种形式,否则LoadBanancer不会起作用。

NFLoadBalancerRuleClassName中可以配置的值:

其它可配置项:

.ribbon.NFLoadBalancerClassName: ILoadBalancer
.ribbon.NFLoadBalancerRuleClassName: IRule
.ribbon.NFLoadBalancerPingClassName: IPing
.ribbon.NIWSServerListClassName: ServerList
.ribbon.NIWSServerListFilterClassName: ServerListFilter

下表中列出了Spring Cloud Netflix为Ribbon提供的默认值:

Bean Type

Bean Name

Class Name

IClientConfig

ribbonClientConfig

DefaultClientConfigImpl

IRule

ribbonRule

ZoneAvoidanceRule

IPing

ribbonPing

DummyPing

ServerList<Server>

ribbonServerList

ConfigurationBasedServerList

ServerListFilter<Server>

ribbonServerListFilter

ZonePreferenceServerListFilter

ILoadBalancer

ribbonLoadBalancer

ZoneAwareLoadBalancer

ServerListUpdater

ribbonServerListUpdater

PollingServerListUpdater

如果创建了以上类型的一个bean,并将它们放入使用了@RibbonClient的一个配置中,默认值将会被覆盖。

完成以上工作后,通过访问比如:http://127.0.0.1:8080/test/test.jsp,LoadBalancer就会将请求转发到http://127.0.0.1:9090/test/test.jsp,或http://localhost:9090/test/test.jsp

参考文档

Spring Cloud Gateway:The LoadBalancerClient Filter
https://cloud.spring.io/spring-cloud-gateway/reference/html/#the-loadbalancerclient-filter

Spring Cloud Netflix: Client Side Load Balancer: Ribbon
https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.1.RELEASE/reference/html/#spring-cloud-ribbon

Working with load balancers
https://github.com/Netflix/ribbon/wiki/Working-with-load-balancers#components-of-load-balancer

Client Side Load Balancing with Ribbon and Spring Cloud
https://spring.io/guides/gs/client-side-load-balancing/

spring-cloud-gateway负载普通web项目
https://www.cnblogs.com/bener/p/10638814.html

Spring Cloud Gateway 监控、多网关实例路由共享 | Spring Cloud 18 Actuator是Spring Boot提供的用来对应用系统进行监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 Actuator的核心是端点Endpoint。 Endpoint可以让我们监视应用程序并与其交互。Spring Boot包含许多内置端点,并允许您添加自己的端点。 我们可以启用或禁用每个端点,启用或禁用端点控制是否创建端点并且其bean存在于应用程序上下文中。 要进行远程访问,还必须通过JMX或HTTP公开端点。大多数端点HTTP访问默认是关闭的。 阅读详情

相关推荐

SpringCloud - 新版淘汰 Ribbon,在 OpenFeign 中整合 LoadBalancer 负载均衡

RandomLoadBalancer - 随机分配策略(默认)RoundRobinLoadBalancer - 轮询分配策略//这里不用加 @Configuration 注解//将官方提供的 RandomLoadBalancer 注册为Bean@Bean通过 @LoadBalancerClient(value = "服务名", configuration = LoadBalancerConfig.class) 指定负载均衡策略为随机.

CYK_byte的博客 1万+

Spring Cloud Gateway 微服务网关

Spring Cloud Gateway 微服务网关 创建项目(命名 为 Gateway), 添加pom 依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId&...

Dong滴个Dong的博客 3016

【网络安全】Centos7安装杀毒软件----ClamAV

Clam AntiVirus是一个Linux系统上使用的反病毒软件包。主要应用于邮件服务器,采用多线程后台操作,可以自动升级病毒库。

你在看屏幕的同时,屏幕也在注视着你 8828

SpringCloud-gateway Redis动态路由及 各EndPoint介绍

Spring Cloud Gateway 微服务网关 创建项目(命名 为 Gateway), 添加pom 依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>2.2.0.RELEASE</version> &

z69183787的专栏 3045

使用Wireshark抓取用户在网站的登陆密码

(POST请求是浏览器向服务器提交数据的方式,我们的用户名和密码就是这样提交出去的),单击点开,发现我们的账号和密码,就被抓取到了,在。(注意哦,要去掉http和/,比如http://www.4399.com/,我们只需要记下4399.com即可)(这句话是筛选数据,就是只显示IP为我们要抓取网站的数据) ,点击右边的蓝色箭头。这就是Wireshark简单的抓取登录密码的教程,只适用于http协议的网站。”打开,是这个样子,上面的数据先不用管,我们先点击左上角红色的方块停止抓包。,然后回车,得到的IP为。

泡泡的博客 1万+

红日-VulnStack靶场-ATT&CK(二):从Weblogic漏洞到域控渗透实战

本文详细解析了红日安全团队VulnStack靶场中从Weblogic漏洞到域控渗透的完整攻击链。通过实战演示Weblogic反序列化漏洞利用、Cobalt Strike持久化控制、域内信息收集及PsExec横向移动等关键技术,复现了企业内网渗透的典型场景,并提供了防御建议。

tgb3456789的博客 936

Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)修复建议

Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)修复建议

lujiawei00的专栏 1489

Meta DINOv3实战指南:如何用7B参数ViT模型提升你的视觉任务性能(附Hugging Face部署教程)

本文提供了Meta DINOv3 7B参数ViT模型的实战部署指南。文章详细解析了该自监督视觉模型的优势,并重点演示了如何在Hugging Face平台上高效加载这一大规模模型,同时给出了图像分类、语义分割等下游任务的性能提升技巧与代码示例,帮助开发者在实际视觉任务中应用这一前沿技术。

pz89012345的博客 324

Spring Cloud Kubernetes之实战一配置管理

一直以来,玩springcloud的,基本都是在玩Springboot1.x,Springcloud(Dalston版)的众多相关组件来做配置中心、服务注册与发现,网关用的是Netflix公司对springboot做的LB,等等,但是这些东西太过沉重,复杂了。在一个以k8s为基础的iaas服务系统,如果不用k8s的特性来做这些事,那是说不过去的。理由这就不重复述说了。一句话:减少系统服务的复杂性。...

wangsofa的博客 1295

WebVTT中的文本轨道(Text Tracks,TT)到底是什么鬼?

WebVTT,全称是The Web Video Text Tracks Format,意思是网络视频文本轨道格式。那么到底什么是文本轨道(Text Tracks)呢?这篇文章希望一探究竟。

码农1479的博客 1985

Qt跨平台CAN通信实战:Vector、PCAN与周立功设备统一接口设计

本文针对Qt开发中常见的多品牌CAN设备兼容难题,提出了一套统一的跨平台CAN通信接口设计方案。通过抽象层封装,实现了对Vector、PCAN和周立功设备的统一操作,上层业务代码无需修改即可在不同硬件间切换,有效解决了驱动API差异、环境配置复杂和维护成本高等痛点,显著提升了代码复用率和开发效率。

weixin_29161785的博客 329

Spring Cloud组件源码之LoadBalancer源码分析

由于原有的负载均衡组件Ribbon停止维护,而完美的Spring生态怎能允许缺少负载均衡组件呢?Spring Cloud官方自己造出了Spring Cloud LoadBalancer来代替原有的Ribbon。由于是官方自己写的组件,所以并没有像eureka、Feign那样抽出一个单独的组件包出来。放入到Spring Cloud Commons规范包中。

李哈zzz的博客 1377

基于深度学习的人脸识别考勤管理系统,采用YOLOv11和Dlib算法实现人脸识别和考勤签到,前台人脸识别和签到系统 + 后台人脸和考勤管理系统,全网独发

基于深度学习的口罩人脸识别的考勤管理系统,采用YOLOv11和Dlib算法实现人脸识别和考勤签到,前台人脸识别和签到系统 + 后台人脸和考勤管理系统,全网独发

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1825

Spring Cloud Gateway代码执行漏洞

CVE-2022-22947基本介绍基本介绍Spring Cloud Gateway

qq_45455136的博客 4702

STM32H750VB与AD5292通讯,写入阻值后,AD5292 的阻值没有变化,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1099

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CVE-2022-22947:Spring Cloud Gateway 远程代码执行漏洞复现及修复建议

CVE-2022-22947:Spring Cloud Gateway 远程代码执行漏洞复现及修复建议

一只爱吃橙子的羊 3万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringCloudGateway爆漏洞,快看看你的服务中招没?

点击关注公众号,利用碎片时间学习同学们,最近相信大家都看到了SpringCloudGateway爆出相关漏洞的信息了,既然如此,你们还不抓紧修改自己的程序吗?即使你没涉及到此次的漏洞,我也...

Java笔记虾 1942

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SpringCloud(三)LoadBalancer负载均衡

LoadBalancer默认提供了两种负载均衡策略:RandomLoadBalancer - 随机分配策略(默认) RoundRobinLoadBalancer - 轮询分配策略现在我们希望修改默认的负载均衡策略,可以进行指定,比如我们现在希望用户服务采用随机分配策略,我们需要先创建随机分配策略的配置类(不用加@Configuration)://将官方提供的 RandomLoadBalancer 注册为Bean@Bean。

m0_64393446的博客 1864

【SpringCloud负载均衡】【源码+图解】【二】LoadBalancer配置

【SpringCloud负载均衡】【源码+图解】【二】LoadBalancer配置

Lanna_w的博客 3274

【SpringCloud教程】4.SpringCloud Gateway常用配置和整合Loadbalancer

上篇讲到了SpringCloud Gateway的简单使用,实现转发功能。本章主要讲到常用配置以及整合Loadbalancer。 常用配置 Gateway 基本配置route(路由)构成如下: id:保证路由唯一; uri:配置跳转路径,可以是具体的http资源路径、也可以是服务名。如lb://user/,lb是loadbalancer缩写,user是服务名,通过这段配置实现服务的负载均衡,这一点类似Nginx的upstream; predicate:配置规则,官网配置如下: filters:给下游配置请

terrybg 1万+

Spring Cloud Gateway 之动态路由

通过 GatewayControllerEndpoint 和 AbstractGatewayControllerEndpoint 类的源码,我们可以知道 Gateway 提供获取路由信息、过滤器、断言等接口,这里面我们重点关注了的关于路由部分的,也是源码中涉及较多的,这两个类的源码提供了路由的增删改查及刷新的接口。AbstractGatewayControllerEndpoint#refresh 路由刷新功能,逻辑很简单,使用了事件监听的机制,发布了一个路由刷新事件。如有不正确的地方请各位指出纠正。

weixin_42118323的博客 3595

springCloud-LoadBalancer负载均衡微服务负载均衡器LoadBalancer

springCloud-LoadBalancer负载均衡微服务负载均衡器LoadBalancer

qq_19891197的博客 2594
上一篇: Springcloud 版本的那些事
下一篇: Tomcat8启动闪退解决办法
AIGC镜像空间
博客等级 码龄5年 4万+粉丝 689原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值