码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 24.Gateway 断言工厂Predicate的使用(springcloud)


    在 gateway 启动时会去加载一些路由断言工厂(判断一句话是否正确 一个 boolean 表达式 )
    1 什么是断言, Gateway 里面有哪些断言
    断言就是路由添加一些条件 ( 丰富路由功能的 )
    通俗的说, 断言就是一些布尔表达式 ,满足条件的返回 true ,不满足的返回 false 。
    Spring Cloud Gateway 将路由作为 Spring WebFlux HandlerMapping 基础架构的一部分进行匹配。Spring Cloud Gateway 包括许多内置的路由断言工厂。所有这些断言都与 HTTP请求的不同属性匹配。您可以将多个路由断言可以组合 使用。
    Spring Cloud Gateway 创建对象时,使用 RoutePredicateFactory 创建 Predicate 对象,Predicate 对象可以赋值给 Route。

     

     

    2 如何使用这些断言
    使用断言判断时,我们常用 yml 配置文件的方式进行配置

     

    还有一个访问权重的设置,意思是说:
    80% 的请求,由 https://weighthigh.org 这个 url 去处理
    20% 的请求由 https://weightlow.org 去处理
    3 断言总结
    Predicate 就是为了实现一组匹配规则,让请求过来找到对应的 Route 进行处理
    其实 gateway 默认为我提供的断言工厂已经够用了,但是我们想自己定义呢
    自定义路由断言工厂需要继承 AbstractRoutePredicateFactory 类,重写 apply 方法的逻辑。
    在 apply 方法中可以通过 exchange.getRequest() 拿到 ServerHttpRequest 对象,从而可以获取到请求的参数、请求方式、请求头等信息。
    apply 方法的参数是自定义的配置类,在使用的时候配置参数,在 apply 方法中直接获取使 用。
    命名需要以 RoutePredicateFactory 结尾,比如 CheckAuthRoutePredicateFactory,那么在使用的时候 CheckAuth 就是这个路由断言工厂的名称。

     

  • 相关阅读:
    尿检设备“智能之眼”:维视智造推出MV-MC 系列医疗专用相机
    .NET餐厅管理系统sql数据帮助类执行SQL返回DataTable数据集、使用事务执行多条SQL(插入、更新、删除)
    关于jQuery_事件对象的属性,方法介绍和使用
    【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录
    dubbo-admin 无法显示元数据
    python小说爬虫源代码
    如何寻找计算机领域的英文文献?
    设备行业研究报告:激光打印机市场现状及未来发展趋势
    JVM运行流程
    Android 11.0 当系统内置两个Launcher时默认设置Launcher3以外的那个Launcher为默认Launcher
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/127839008
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号