2021-05-28

微服务网关 zuul 替代者 gateway 网关路由

简述
Spring Cloud Gateway 是 Spring Cloud 的一个子项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。

Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。

相关概念
Route(路由):网关的基本构件块,类似于 nginx 的 location 配置。由一个 ID、一个目标 URI、一组 Predicate 和一组 Filter 定义

Predicate(断言):路由组成的一部分,主要负责路由的匹配,来决定此次请求是否匹配路由,我们可以使用它匹配来自 HTTP 请求的任何内容,比如路径、参数或者 header 信息等等

Filter(过滤器):这个是 GatewayFilter 的实例,请求经过 Predicate 匹配路由之后执行 Filter,我们可以使用它修改请求和响应。

 Spring Cloud Gateway 网关路由有两种配置方式:

通过配置文件配置

通过 @Bean 自定义 RouteLocator 去配置

这两种方式是等价的,建议使用配置文件配置。因为 Spring Cloud Gateway 使用响应式编程框架,学习曲线相对陡峭。

server: port: 8088eureka: client: serviceUrl:  # 注册中心地址  defaultZone: application: name: test-gateway cloud: gateway:  routes:  - id: test1   uri:   predicates:   - Path=/fhadmin/**   filters:   - StripPrefix=1

各字段含义如下:
id:我们自定义的路由 ID,保持唯一
uri:目标服务地址,大部分场景我们是转发到某个服务上,配置 uri: lb://user-service 意思是请求要转发到注册中心的 user-service 服务上。 
predicates:路由条件,接受一个参数,返回一个布尔结果决定是否匹配。Gateway 为我们内置了多种路由条件,包括 Path、Cookie、Param、Header、Before、After 等等,开箱即用,当然我们也可以自己实现 predicates
filters:过滤规则,当请求经过 predicate 匹配成功后,执行 filter,我们可以使用它修改请求和响应,示例表示目标服务收到的 path 将无第一级。
启动程序,当我们访问 localhost:8088/baidu 时,gateway 会根据我们配置的路由规则转发到 src="https://img-blog.csdnimg.cn/20210426001018582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjIxNzE2MA==,size_16,color_FFFFFF,t_70" alt="" width="389" height="426" data-cke-saved-src="https://img-blog.csdnimg.cn/20210426001018582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjIxNzE2MA==,size_16,color_FFFFFF,t_70">

 

解决单点故障的问题

在gateway前面使用nginx,用nginx负载均衡到不同的gateway服务上。









原文转载:http://www.shaoqun.com/a/764914.html

跨境电商:https://www.ikjzd.com/

ryder:https://www.ikjzd.com/w/1264.html

执御:https://www.ikjzd.com/w/717.html


简述SpringCloudGateway是SpringCloud的一个子项目,该项目是基于Spring5.0,SpringBoot2.0和ProjectReactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。SpringCloudGateway作为SpringCloud生态系统中的网关,目标是替代NetflixZuul,其不仅提供统一的路由方式,并且基于Fil
墩煌网:https://www.ikjzd.com/w/189
韩蓬:https://www.ikjzd.com/w/1635
淘粉吧:https://www.ikjzd.com/w/1725
为用户节省高达59%的配送费!巴西物流交付截止日期将减半!:https://www.ikjzd.com/articles/95840
15岁少女加入"打屁屁俱乐部" 被打满足才离开:http://lady.shaoqun.com/a/46051.html
优化亚马逊图片 别忘了用这些类型的产品图:https://www.ikjzd.com/articles/132469

No comments:

Post a Comment