单块应⽤时代

单块+API时代

微服务?

微服务+⽹关

⽹关职责

关于Zuul1

基于blocking servlet API

不⽀持SSE或者WebSocket

路由灵活度⼀般

Netflix专有功能

Spring Cloud Gateway

基于Spring, Reactor, Boot 2

⽀持基于配置或Java代码⽅式的灵活路由

路由⽀持path/host/header/parameters等

⽀持过滤器

https://cloud.spring.io/spring-cloud-gateway/spring-cloud-gateway.html

架构

简单过滤器

@Slf4j
public class SimpleFilter implements GatewayFilter {@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {log.info("BEFORE");return chain.filter(exchange).then(Mono.fromRunnable(() -> {log.info("AFTER");}));}
}

YAML配置

spring:cloud:gateway:- id: foo_routeuri: lb://foopredicates:- Host=**.foo.org- Path=/headers- Method=GET- Header=X-Request-Id, \d+- Query=foo, ba.- Query=baz- Cookie=chocolate, ch.p- After=1900-01-20T17:42:47.789-07:00[America/Denver]filters:- AddRequestHeader=X-Request-Foo, Bar- AddResponseHeader=X-Response-Foo, Bar- Hystrix=foo- SecureHeaders- RewritePath=/foo/(?<segment>.*), /$\{segment}

Java配置

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder,ThrottleGatewayFilterFactory throttle) {return builder.routes().route(r -> r.host("**.abc.org").and().path("/image/png").filters(f -> f.addResponseHeader("X-TestHeader", "foobar")).uri("http://httpbin.org:80")).route(r -> r.path("/image/webp").filters(f -> f.addResponseHeader("X-AnotherHeader", "baz")).uri("http://httpbin.org:80")).route(r -> r.order(-1).host("**.throttle.org").and().path("/get").filters(f -> f.filter(throttle.apply(1, 1, 10,TimeUnit.SECONDS))).uri("http://httpbin.org:80")).build();
}

微服务⽹关Spring Cloud Gateway相关推荐

  1. spring cloud gateway 网关_微服务网关Spring Cloud Gateway全搞定

    一.微服务网关Spring Cloud Gateway 1.1 导引 文中内容包含:微服务网关限流10万QPS.跨域.过滤器.令牌桶算法. 在构建微服务系统中,必不可少的技术就是网关了,从早期的Zuu ...

  2. 第五章 微服务网关Spring Cloud Gateway

    5.1 微服务网关简介 第三章我们介绍了通过Spring Cloud LoadBalancer实现了微服务之间的调⽤和负载均衡,以及使⽤Spring Cloud OpenFeign声明式调⽤,那我们的 ...

  3. ws配置 zuul_微服务网关 Spring Cloud Gateway

    1.  为什么是Spring Cloud Gateway 一句话,Spring Cloud已经放弃Netflix Zuul了.现在Spring Cloud中引用的还是Zuul 1.x版本,而这个版本是 ...

  4. 微服务网关spring cloud gateway入门详解

    1.API网关 API 网关是一个处于应用程序或服务( REST API 接口服务)之前的系统,用来管理授权.访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起来,对所有的 ...

  5. 微服务架构spring cloud - gateway网关限流

    1.算法 在高并发的应用中,限流是一个绕不开的话题.限流可以保障我们的 API 服务对所有用户的可用性,也可以防止网络攻击. 一般开发高并发系统常见的限流有:限制总并发数(比如数据库连接池.线程池). ...

  6. 大话微服务:Spring Cloud gateway+OAuth2 实现单点登录和权限控制(二) OAuth2.0 四种模式的通俗理解

    一. 概述 OAuth2.0的规范要求,就是客户端(即通常是各个应用程序)要访问资源所有者时,经过资源所有者同意后,由Oauth向这个客户端颁发令牌.为了满足互联网不同的场景 ,规定了四种获得令牌的流 ...

  7. 微服务等于Spring Cloud?了解微服务架构和框架

    作者:TIM XU 来源:https://xiaoxubeii.github.io/articles/microservices-architecture-introduction/ 微服务初探 什么 ...

  8. 微服务等于Spring Cloud?一文告诉你微服务到底是什么

    作者:TIM XU 原文:https://xiaoxubeii.github.io/articles/microservices-architecture-introduction/ 1 微服务初探 ...

  9. 微服务等于 Spring Cloud?了解微服务架构和框架

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | J ...

最新文章

  1. 南京大学潘天群教授:人类智能发展的宏大叙事
  2. Ubuntu 修改时区和时间
  3. Mac-连接Windows远程桌面软件
  4. 修改数据无法提交_学习篇管家婆物联通功能讲解--|修改客户
  5. 隐藏水滴屏的软件_突破屏下摄像头技术,vivo APEX 2020,开启全面屏手机黑科技!...
  6. 【WCF--初入江湖】11 安全
  7. 根据企业财务进行风险分析——基于pytorch
  8. JAVA虚拟机内存分配原则 (转
  9. 程序阅读理解题目(高中语文版,附答案)
  10. leetcode哈希表解决异位词问题
  11. 手把手教你如何扩展GridView之个性分页
  12. java bigInteger +1 加常数
  13. 具体案例 快速原型模型_快速原型模型
  14. RGB VGA显示时序
  15. 中央财经大学c语言试题答案,中央财经大学C语言题
  16. minecraft_死后如何保存Minecraft物品(和其他聪明技巧)
  17. 力扣(674.160)补8.30
  18. Jekins安装和部署
  19. Android高级控件----AdapterView与Adapter详解
  20. python3提高pip模块安装速度的方法

热门文章

  1. POJ_2031 Building a Space Station
  2. 如何成为一名优秀的web前端工程师(前端攻城师)?
  3. 云计算与大数据概论第八周
  4. Mac使用n管理node版本
  5. 这样的情书,女生会喜欢吗
  6. LODOP中无规律无法还原偶尔出现问题排查
  7. 怎么改变图片大小?还不影响清晰度?
  8. ps 2020更新啦 安装包
  9. ensp报系统本机计数器无法使用
  10. 如何借助 AI ,生成专属图标? #iconify AI