服务网关
Ⅰ、路由网关之Zuul(停更)
Ⅱ、路由网关之Gateway
1、Gateway简述
- Gateway 介绍
- 使用了webflux的reactor-netty响应式编程组件,底层使用了Netty通讯框架
- Gateway 功能介绍
- 反向代理
- 鉴权
- 流量控制
- 熔断
- 日志监控…
- Gateway 架构位置在服务器负载均衡之后
- Gateway 的优势
- 基于spring 5,spring boot 2.0,project Reactor构建
- 动态路由:
- 对路由指定断言和过滤
- 集成Hystrix断路器功能
- 继承了spring cloud 服务发现
- 限流和路径重写…
- Gateway 工作流程
- 路由是构建网关的基本模块,由ID和目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由。
- web请求,通过一定的匹配条件,定位到服务节点。并在转发过程的前后,进行一些精细化的控制,predicate就是我们的匹配条件;而filter理解为一个无所不能的拦截器。有了这两个元素加上目标的URI,就可以实现一个具体的路由了。
- Client -> Mapping -> WebHandle -> Gateway(predicate->filter) ->Service
2、Gateway入门
实现:Eureka + Gateway
-
pom
<!--注意:gateway中需要移除这个 --> <!--<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>2.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>