当前位置: 首页 > news >正文

SpringCloud:Gateway

1. 简介

Gateway是在Spring生态系统之上构建的API网关服务,基于Spring6,Spring Boot 3和Project Reactor等技术。它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式,并为它们提供跨领域的关注点,例如:安全性、监控/度量和恢复能力。

Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,从而加强安全保护。Spring Cloud Gateway本身也是一个微服务,需要注册进服务注册中心。

2. 三大核心

3. 工作流程

客户端向 Spring Cloud Gateway 发出请求。然后在 Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到 Gateway Web Handler。Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。

过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(Pre)或之后(Post)执行业务逻辑。

在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等;

在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等有着非常重要的作用。

 4. 高级特性

Route

以微服务名动态获取服务url

 

 Predicate

Filter

 过滤器分别在请求执行前和执行后调用,可用来修改请求和响应信息

5. 面试题 

统计接口调用耗时情况,如何落地,谈谈设计思路 

1. 自定义过滤器,实现GlobalFilter、Ordered两个接口

2. 配置要统计模块的接口路径 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (Charles)如何抓取手机http的报文
  • Python Flask_APScheduler定时任务的正确(最佳)使用
  • Linux命名管道
  • 前端面试热点题目——typescript篇
  • 【高阶数据结构】二叉树的创建、存储方式(顺序与链式)、遍历方法(递归与非递归)(精美图解+完整代码)
  • 握手的方式展现人的性格及行为倾向
  • 请解释Java中的线程局部变量的作用和使用场景。什么是Java中的Lock接口?它与synchronized关键字有何区别?
  • yum源配置与静态配置地址
  • 华为OD机试真题-数组拼接-2023年OD统一考试(B卷)
  • SpringBoot 时间格式校验问题
  • MybatisPlus 快速入门
  • 基于JAVA+SpringBoot+Vue的工程教育认证的计算机课程管理平台
  • mac 电脑 git credential osxkeychain问题
  • 代码随想录算法训练营第二十二天| 491. 递增子序列、46. 全排列、47. 全排列Ⅱ
  • HTTP1.0 到 HTTP3.0 的优化
  • 分享的文章《人生如棋》
  • 自己简单写的 事件订阅机制
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • docker容器内的网络抓包
  • input的行数自动增减
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java到底能干嘛?
  • java小心机(3)| 浅析finalize()
  • js作用域和this的理解
  • Material Design
  • Objective-C 中关联引用的概念
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 那些被忽略的 JavaScript 数组方法细节
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • ​io --- 处理流的核心工具​
  • # include “ “ 和 # include < >两者的区别
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #define 用法
  • #单片机(TB6600驱动42步进电机)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (五)网络优化与超参数选择--九五小庞
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转) Android中ViewStub组件使用
  • (转)可以带来幸福的一本书
  • .NET 8 跨平台高性能边缘采集网关
  • .net wcf memory gates checking failed
  • /*在DataTable中更新、删除数据*/
  • ;号自动换行
  • @property括号内属性讲解
  • []error LNK2001: unresolved external symbol _m
  • [BZOJ3223]文艺平衡树
  • [C#7] 1.Tuples(元组)
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [LeetCode]剑指 Offer 42. 连续子数组的最大和
  • [linux c]linux do_div() 函数用法