当前位置:科普知识站>IT科技>

gateway|java

IT科技 阅读(3.03W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

gateway java是什么,让我们一起了解一下?

gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式,目标是替代ZUUL。例如:安全,监控/埋点,和限流等。

我们为什么要用gateway?

1、Spring Cloud Gateway 可以看做是一个 Zuul 1.x 的升级版和代替品,比 Zuul 2 更早的使用 Netty 实现异步 IO,从而实现了一个简单、比 Zuul 1.x 更高效的、与 Spring Cloud 紧密配合的 API 网关。

2、Spring Cloud Gateway 里明确的区分了 Router 和 Filter,并且一个很大的特点是内置了非常多的开箱即用功能,并且都可以通过 SpringBoot 配置或者手工编码链式调用来使用。

3、比如内置了 10 种 Router,使得我们可以直接配置一下就可以随心所欲的根据 Header、或者 Path、或者 Host、或者 Query 来做路由。

比如区分了一般的 Filter 和全局 Filter,内置了 20 种 Filter 和 9 种全局 Filter,也都可以直接用。当然自定义 Filter 也非常方便。

gateway java

那么gateway怎么用?

说白了 Predicate 就是为了实现一组匹配规则,方便让请求过来找到对应的 Route 进行处理,接下来我们接下 Spring Cloud GateWay 内置几种 Predicate 的使用。

通过时间匹配:

比如我们现在设置只有在 2019 年 1 月 1 日转发,我就可以这样配置:

spring:  cloud:    gateway:      routes:       - id: time_route        uri: http://ityouknow.com        predicates:         - After=2018-01-20T06:06:06+08:00[Asia/Shanghai]

当然除了通过时间匹配,我们还可以通过以下方式:

1、通过 Cookie 匹配

2、通过 Host 匹配

3、通过请求方式匹配

4、通过请求路径匹配

5、通过请求参数匹配

6、通过请求 ip 地址进行匹配