spring-gateway配置说明

在开发过程中遇到的一些配置问题,记录下来以供参考
spring-gateway版本是2.2.9-release,使用的spring cloud dependence 是 Hoxton.SR12

在依赖eureka 服务发现并自动将发现服务器加入到router中的时候,需要指定对应的服务进行添加,根据文档描述可以使用spring.cloud.gateway.discovery.locator.include-expression 参数允许接收一个 spel表达式,用于判定当前的service instance是否允许进行自动路由,我所遇到的问题是不清楚可以依靠那些字段进行判断,根据报错信息,可以定位到,spel表达式执行的上下文是ServiceInstance,具体的逻辑代码在org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator#getRouteDefinitions
代码如下

     SpelExpressionParser parser = new SpelExpressionParser();Expression includeExpr = parser.parseExpression(this.properties.getIncludeExpression());Expression urlExpr = parser.parseExpression(this.properties.getUrlExpression());Predicate includePredicate;if (this.properties.getIncludeExpression() != null && !"true".equalsIgnoreCase(this.properties.getIncludeExpression())) {includePredicate = (instance) -> {Boolean include = (Boolean)includeExpr.getValue(this.evalCtxt, instance, Boolean.class);return include == null ? false : include;};} else {includePredicate = (instance) -> {return true;};}

同理还有urlExpr 的逻辑和include-expression类似,排除那些服务不用自动添加,使用的不同服务发现具体得到的ServiceInstance会不一致,比如eureka的支持
eurekaServiceInstance
这里提供了metadata,假设我们在配置文件中设置了对应值,那么这里就可以用
spring.cloud.gateway.discovery.locator.include-expression=metadata[xxx] == 1这种形式进行引用,比如线上服务通过给metadata文件添加版本号表示当前服务实例非稳定版本,不让它对外提供服务。配合上springbus,springconfig 可以非常方面的进行调整

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

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

相关文章

技术分享 | 基于 API 解析的 Python 爬虫

最近各大高校纷纷翻拍 Coincidence 抖肩舞,需要对这种流行现象进行数据分析。数据分析首先需要有数据,本文介绍了爬取 B 站相应视频的评论、弹幕、播放量、点赞数等数据的方法。爬虫有多种实现方法,大型的网络爬虫多基于成熟的爬虫框架&#…

vue 登录

1.创建项目 Set-ExecutionPolicy RemoteSigned npm install -g yarn yarn add axios yarn add element-pluspackage.json {"name": "tom6","version": "0.1.0","private": true,"scripts": {"serve": &…

域内攻击手法——域内用户枚举和密码喷洒

一、域内用户枚举 1、域内用户枚举原理 域内用户枚举可以在无域内有效凭据的情况下,枚举出域内存在的用户名,并对其进行密码喷洒攻击,以此获得域内的有效凭据,在 Kerberos 协议认证的 AS-REQ 阶段,客户端向 AS 发送的…

交易中的特殊存在

在交易的广袤天空中,有一群特殊的存在——他们,是Eagle Trader。 他们以鹰眼般的洞察力,捕捉市场的微妙变化,每一次决策都如同猎食者般精准;他们运用策略,如同雄鹰在风中翱翔,利用风向&#xf…

索尼MXF文件断电变2G恢复方法(PXW-Z280V)

PXM-Z280V算是索尼比较经典的机型,也是使用MXF文件格式的机型之一。近期接到很多例索尼MXF量突然不正常的案例(如变成512字节或者2G),下面来看下这个案例。 故障存储: 128G存储卡 /文件系统:exFAT 故障现象: 客户反…

兴业严选|朝阳、大兴、丰台、等5.9折起总有一套适合你~

近日于上海,出现了一桩令人始料未及之事。一套地处浦东、面积达 245.7 平方米的住宅进行挂网拍卖。 出乎意料的是,此套房子受到众多买家的青睐,历经一番激烈的竞价竞争,最终以 1766 万元的价格成交,折合每平方米 7187…

通俗范畴论3 从特指对象到对象

同一性问题 如前所述,特指对象有个名字,并用一个点表示(相当于另一个名字),它可以作为箭头的起点或终点,箭头的多少,以及箭头的起点和终点根据表达的需要而定,没有特别的约定。因此…

玄机平台流量特征分析-蚁剑流量分析

前言 蚁剑的流量特征 (1)每个请求体都存在ini_set(“display_errors”, “0”);set_time_limit(0)开头。并且后面存在base64等字符 (2)响应包的结果返回格式为: 随机数 响应内容 随机数 看一下题目要求 步骤1.1 这里要求我们找到木马的连接密码,…

智能猫砂盆效果这么惊艳吗?绝对不踩雷的智能猫砂盆合集来啦

身为一个铲屎官,我深受“天天铲屎”的困扰。想要片刻放松都不行,因为猫砂盆一旦堆积屎尿,尤其在夏天,会迅速发臭,滋生细菌。对猫而言,不清理猫砂盆会让它们感到不适,可能引发疾病或拒绝使用猫砂…

如何在Ubuntu上安装WordPress

如何在Ubuntu上安装WordPress 执行系统更新 apt update && apt upgrade第一步 安装 Apache apt install apache2确认 Apache 安装是否成功. systemctl status apache2安装成功后 打开浏览器输入 http://server-ip-address 第二步 安装 MySQL apt install mariad…

解决uniapp h5 本地代理实现跨域访问及如何配置开发环境

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 如何解决uniapp H5本地代理实现跨域访问? 1.第一种解决方法: 直接创建一个vue.config.js文件,并在里面配置devServer,直接上…

YOLOv10改进 | 注意力篇 | YOLOv10引入MLCA

1. MLCA介绍 1.1 摘要:注意力机制是计算机视觉中使用最广泛的组件之一,可以帮助神经网络强调重要元素并抑制不相关的元素。然而,绝大多数信道注意力机制只包含信道特征信息,忽略了空间特征信息,导致模型表示效果或目标检测性能较差,且空间注意力模块往往复杂且成本高昂。…

3. zabbix触发器、报警

zabbix触发器、报警 一、zabbix触发器1、触发器语法 二、配置邮件报警1、创建报警媒介2、指定收件人3、创建报警动作4、测试报警 一、zabbix触发器 针对某一个监控项创建 作用:基于某个条件,触发监控项状态的变化,正常–>问题&#xff0c…

NXP i.MX8系列平台开发讲解 - 3.15 Linux 之USB子系统(一)

专栏文章目录传送门:返回专栏目录 Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】 目录 Linux 之USB子系统(一) 1. USB基础简介 1.1 USB的传输模式 1.2 USB 的设备描述符 1.3 USB 类的定义分类 2…

强化安全新篇章:韶关石油化工可燃气体报警器年检解析

韶关,这座位于广东省北部的城市,近年来在石油化工行业取得了显著的发展。 随着一批批大型石化企业的进驻和投产,韶关不仅成为了区域性的石化产业基地,也为地方经济带来了强劲的增长动力。 然而,随着石化产业的快速发…

Facebook与地方文化:数字平台的多元表达

在当今数字化时代,社交媒体不仅仅是人们交流的工具,更是促进地方文化传播和表达的重要平台。作为全球最大的社交网络之一,Facebook在连接世界各地用户的同时,也成为了地方文化多元表达的重要舞台。本文将深入探讨Facebook如何通过…

Python 修炼|人人编程手册|001 计算思维

在微信中阅读,关注公众号:CodeFit。 > 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创作 提供 动力! 1. 计算思维 在我们正式开启 Python 修炼之旅前,先来了解一个关键的概念 —— 计算思维。 计算思维,其核心本质在于 抽象 …

顶顶通呼叫中心中间件-替换授权文件使授权文件生效指南

一、登录my.ddrj.com下载授权文件 登录地址:用户-顶顶通授权管理系统 登录之后正式授权然后点击查看把license.json下载下来,然后替换到fs的授权文件路径,默认路径是:/ddt/fs/conf 如果安装路径不一样就需要自己去看看授权文件存…

中石化加油卡有什么用?

对于有车一族来说,有一张加油卡真的可以省下不少钱 但是像我们这种没车的人,即使得到加油卡也毫无用武之地 久而久之,难免会造成卡过期的情况出现 还好,前两天把我手上堆积了好久的加油卡在收卡云上卖出去了,99折真…

nodejs从基础到实战学习笔记-模块化、包

二、模块化 2.1 什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。 2.1.1 把代码进行模块化拆分的好处 提高了代码的复用性提高了代码的可维护性可以实现按需…