【第18章】Spring Cloud之Gateway配置

news2024/11/15 22:54:18

文章目录

  • 前言
  • 一、示例
  • 二、Route Metadata Configuration
    • 1. 路由元数据配置
    • 2. 获取元数据配置
  • 三、Http timeouts configuration(请求超时配置)
    • 1. Global timeouts(全局)
    • 2. Per-route timeouts(路由)
  • 四、CORS Configuration(跨域配置)
    • 1. Global CORS Configuration(全局)
    • 2. Route CORS Configuration(路由)
  • 总结


前言

我们可以通过官方提供的配置,让我们的系统更加地灵活和健壮。


一、示例

spring:
  cloud:
    gateway:
      routes:
      - id: setstatus_route
        uri: https://example.org
        filters:
        - name: SetStatus
          args:
            status: 401
      - id: setstatusshortcut_route
        uri: https://example.org
        filters:
        - SetStatus=401

这里定义了两个路由,第一个路由setstatus_route配置了一个过滤器和传递了一个参数;
第二个路由setstatusshortcut_route快捷方式(我的理解为短语更合适),让配置看上去更加简洁,效果等同。

二、Route Metadata Configuration

我们可以在路由中自定义一些配置信息,在程序运行时根据这些信息做不同的处理。

1. 路由元数据配置

spring:
  cloud:
    gateway:
      routes:
      - id: route_with_metadata
        uri: https://example.org
        metadata:
          optionName: "OptionValue"
          compositeObject:
            name: "value"
          iAmNumber: 1

2. 获取元数据配置

获取配置

这里我们在之前的BlackListGatewayFilterFactory网关过滤器的基础上获取,仅列出核心代码

Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR);
// 获取所有的metadata配置
Map<String, Object> metadataAll = route.getMetadata();
System.out.println(metadataAll);
// 根据key获取单个metadata配置
Object o = metadataAll.get("optionName");
System.out.println(o);

输出

{optionName=OptionValue, compositeObject={name=value}, iAmNumber=1}
OptionValue

三、Http timeouts configuration(请求超时配置)

1. Global timeouts(全局)

connect-timeout 单位是毫秒
response-timeout 单位是java.time.Duration

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 1000
        response-timeout: 5s

TimeUnit.SECONDS.sleep(5);

超时测试
在这里插入图片描述

2. Per-route timeouts(路由)

这个配置参数和上面全局的一样,只不过作用范围是路由级别,作用范围更细了,时间单位略有区别
connect-timeout 单位是毫秒
response-timeout 单位是毫秒

      - id: per_route_timeouts
        uri: https://example.org
        predicates:
          - name: Path
            args:
              pattern: /delay/{timeout}
        metadata:
          connect-timeout: 200
          response-timeout: 6000

上面业务休眠5秒,路由这里设置6秒的响应时间,覆盖全局超时时间,达到正常响应的效果,整个业务的处理时间应为5秒多,不到6秒

路由超时测试
在这里插入图片描述

四、CORS Configuration(跨域配置)

1. Global CORS Configuration(全局)

全局跨域配置

spring:
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]':
            allowedOrigins: "https://docs.spring.io"
            allowedMethods:
            - GET

2. Route CORS Configuration(路由)

路由跨域配置

spring:
  cloud:
    gateway:
      routes:
      - id: cors_route
        uri: https://example.org
        predicates:
        - Path=/service/**
        metadata:
          cors:
            allowedOrigins: '*'
            allowedMethods:
              - GET
              - POST
            allowedHeaders: '*'
            maxAge: 30

总结

回到顶部
更多配置请查看

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

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

相关文章

【HarmonyOS NEXT星河版开发学习】小型测试案例07-弹性布局小练习

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;暂未发布&#xff09; 前言 在鸿蒙&#xff08;HarmonyOS&#xff09;开发中&#xff0c;Flex布局是一种非常有用的布局方式&#xff0c;它允许开发者创建灵活且响…

FPGA知识基础之--存储器知识点总结以及基于ip核的简单双端口RAM的实现和仿真(附RTL代码和Testbench代码)

目录 前言一、存储器的分类二、实验任务三 、简单&#xff08;伪&#xff09;双端口四、程序设计4.1 模块4.2 时序分析4.3 RTL代码ram_wr 写模块2.ram_rd 写模块3.top模块 五、仿真 前言 笔者在最近的存储器学习时&#xff0c;遇到了一些问题&#xff0c;为此笔者用本篇博客来…

ICM-20948芯片详解(9)

接前一篇文章&#xff1a;ICM-20948芯片详解&#xff08;8&#xff09; 六、寄存器详解 2. USER BANK 0寄存器详述 &#xff08;6&#xff09;INT_PIN_CFG 参考代码&#xff1a; #define ICM20948_INT_PIN_CFG 0x0F &#xff08;7&#xff09;INT_ENABLE 参考代码&#x…

我有10台120kw的直流充电桩,赢利了多少钱?我列出所有成本和多少利润,这里要算上政府补贴。【慧哥开源充电桩平台 HZCOS-chargeOS-cloud】

特别申明&#xff1a;仅仅代表个人观点&#xff0c;错的地方虚心请教学习&#xff0c;各位手下留情 拥有的10台120kW直流充电桩的盈利情况&#xff0c;并考虑到政府补贴&#xff0c;具体数字需要根据实际情况调整。 成本计算 初始投资成本 充电桩成本&#xff1a;每台120kW直…

利用Llama 3 API实现盈利:细节解析

随着人工智能技术的快速发展,基于大模型的服务成为了众多初创企业关注的焦点。Llama 3 API作为一种强大的语言模型接口,为小型公司提供了利用先进AI技术的机会。本文将探讨这些小公司如何通过Llama 3 API实现盈利,并分析其中的关键因素。 一、Llama 3 API性能概览 批处理输…

网络药理学:分子对接之一:macos上MOE和Autodock和PyMol和gromacs的下载、PDB数据库使用、gromacs能量最小化

MOE下载 别想了&#xff0c;要钱的。而且不算是主流软件&#xff0c;过。 Autodock和Autodock tools下载 下载地址&#xff1a;https://autodock.scripps.edu/download-autodock4/ 如果你的电脑满足以下配置&#xff0c;那么推荐下载autodock GPU 操作系统&#xff1a;mac…

重磅!观测云荣获SOC 2 Type II鉴证报告

近日&#xff0c;观测云在数据安全和内控管理领域再获殊荣&#xff0c;成功获得全球四大会计师事务所之一的安永会计师事务所签发的SOC 2 Type II 鉴证报告。这一荣誉不仅是对观测云在相关领域卓越表现的认可&#xff0c;更是对其对客户承诺坚定性和执行力的有力证明。 观测云 …

软件设计之JavaScript(1)

软件设计之JavaScript(1) 【狂神说Java】JavaScript最新教程通俗易懂 学习内容&#xff1a; 软件开发技能点参照&#xff1a;软件开发&#xff0c;小白变大佬&#xff0c;这套学习路线让你少走弯路是认真的&#xff0c;欢迎讨论 软件开发技能点顺序参照&#xff1a;Java学习…

“前缀和”专题篇一

目录 【模版】前缀和 【模版】二维前缀和 寻找数组的中心下标 除自身以外数组的乘积 【模版】前缀和 题目 思路 这道题如果使用暴力解法&#xff0c;即针对每次查询&#xff0c;先算出前r个数的总和&#xff0c;然后再算出前l-1个数的总和&#xff0c;然后相减就得出本次查…

2.类和对象(上)

1. 类的定义 1.1 类定义格式 • class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{ }中为类的主体&#xff0c;注意类定义结束时后面分号不能省略。类体中内容称为类的成员&#xff1a;类中的变量称为类的属性或成员变量; &#xff08;类和结构体非常像&#…

12-利用Excel创建IC类元件库

1.新建excel文件 2.找到模型向导 3.修改属性

技术速递|.NET Aspire 8.1 中面向云原生开发人员的新增功能!

作者&#xff1a;Mitch Denny 排版&#xff1a;Alan Wang 5 月份&#xff0c;我们向全世界发布了 .NET Aspire 的第一个正式版本。.NET 社区的热烈响应令我们深受鼓舞&#xff0c;在大家首次试用时&#xff0c;我们一直在积极倾听并与开发人员互动。 今天&#xff0c;我们很高…

EF Core连接PostgreSQL数据库

PostgreSQL数据库介绍 PostgreSQL是一个功能强大的开源对象关系型数据库管理系统&#xff08;RDBMS&#xff09;。最初于1986年在加州大学伯克利分校的POSTGRES项目中诞生&#xff0c;PostgreSQL以其稳定性、灵活性和扩展性而著称。它支持丰富的数据类型、复杂的查询、事务完整…

C语言进阶(3)

1.数组传参 一维数组传参的时候使用数组名&#xff0c;代表数组首元素的地址&#xff1b;函数接受时形参可以是数组形式&#xff0c;也可能是指针形式&#xff0c;数组形式比较简单数组怎么写&#xff0c;函数接受是就怎么接受,使用指针就要将指针类型写清楚&#xff0c;如下 …

一文搞懂MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM各个系统到底是什么意思&#xff1f;今天一文就给大家分享&#xff01; 在企业管理中&#xff0c;各种信息系统扮演着至关重要的角色&#xff0c;它们如同企业的神经系统&#xff0c;确保各个部分高效协同运作。 MES&#…

微信小程序项目开发【从0到1~入门篇】

创建第一个小程序 1、小程序简介2、第一个小程序&#xff1a;注册小程序开发账号3、第一个小程序&#xff1a;安装开发者工具3.1 了解微信开发者工具3.2下载安装3.3 扫描登录 4、创建小程序项目5、小程序代码的构成5.1json配置文件5.2WXML模板5.3WXSS样式5.4JS 逻辑交互 6、宿主…

HDMI线连接显示器后色彩灰暗问题解析与解决方案

随着科技的快速发展&#xff0c;HDMI线已成为连接电脑与显示器的重要工具。然而&#xff0c;当HDMI线连接显示器后&#xff0c;有时会遇到显示器色彩灰暗的问题。本文将针对这一问题进行深入解析&#xff0c;并提供相应的解决方案。 一、HDMI线连接显示器后色彩灰暗的原因 1. …

C++ SQL ORM

测试代码 // // Created by www on 2024/8/7. // #include "sqlitepp/database.h" #include "sqlitepp/condition.h"#include <iostream> using namespace sqlitepp; using namespace sqlitepp::literals;enum class test_enum {hello };void test…

Matplotlib | 绘制折线图

目录 简介安装 Matplotlib开始绘制简单折线图改变线的样式改变节点的样式添加图表文字改变坐标轴标签改变坐标数值范围绘制多条折线实践&#xff1a;绘制温度变化图 简介 折线图&#xff08;Line Chart&#xff09;&#xff0c;是一种以折线来呈现数据随时间变化而变化的图表。…

上翘机头设计确保了机器人在与杆子正面碰撞后,平稳从水平飞行状态重新调整为垂直飞行状态,进而用翅膀紧紧抱住杆子,实现稳定的栖息

带翼无人驾驶飞行器&#xff08;UAV&#xff09;因其出色的单位质量续航能力&#xff0c;特别适用于远距离任务&#xff0c;如送货、测绘和搜索救援。然而&#xff0c;与有翼飞行动物相比&#xff0c;它们在复杂结构上的着陆或栖息能力受限&#xff0c;难以执行检查、操作、监控…