网关组件Gateway

网关组件Gateway

在微服务体系架构中,网关起到了门户的作用。一方面,网关能接受从客户端发来的请求,并把这些请求转发到具体的业务模块上,另一方面,在网关层面还可以配置限流和熔断等安全防护措施,以达到保护业务模块的效果。
在基于spring cloud Alibaba 的微服务体系中,可以引入Gateway组件构建应用系统的网关。

Gateway组件介绍

大多数基于微服务的应用系统是网关组件来接受外部客户的请求,在接受到这些请求后,会根据在网关层配置的转发策略,把这些请求转发到具体的业务模块上。
网关
gateway组件的功能:

  • 能路由请求,把这些请求定位到具体的功能模块上。
  • 能通过配置过滤器和断言,更精准地把请求定位到功能模块上。
  • 能整合nacos和ribbon组件,实现动态服务治理和负载均衡的效果。
  • 能整合sentinel组件,实现诸如限流和熔断等安全防护效果。

在spring cloud中引入gateway组件

13	        <dependency>
14	            <groupId>org.springframework.cloud</groupId>
15	<artifactId>spring-cloud-starter-gateway</artifactId>
16	        </dependency>
17	    </dependencies>

Gateway组件转发请求的一般做法。在收到请求时,Gateway网关组件会用配置文件中的Path参数匹配url请求,如果能匹配上,那么该请求就会被转发到该路由规则中uri参数指定的地址。这样请求就能根据事先指定的路由规则,被Gateway组件转发到特定的业务服务方法上。

过滤器

过滤器能够处理待转发的url请求。
gateway的过滤器用来制定更改url请求的规则。主要有 去除指定数量路径前缀的StripPrifix和能在原有路径前添加前缀的PrefixPath过滤器。
全局过滤器
任何请求在被业务方法处理前,都将会经过该过滤器,所以在此类过滤器里一般会定义“检查参数” 或“安全验证”等动作。
优先级数值越小的过滤器会优先执行。

网关的断言

作用1 可以通过断言来定义路由规则的生效条件

	predicates:
	  - Path=/hello/**

在url请求含有hello时生效。
作用2 通过断言定义路由规则生效的url请求类型 get post等。

	predicates:
	  - Method=GET

作用3 通过断言定义路由规则生效的时间

	predicates:
	  - Before=2021-09-01T18:00:00.000-18:00[Asia/Shanghai]
	predicates:
	  - After=2021-09-05T18:00:00.000-18:00[Asia/Shanghai]

作用4 通过断言定义路由规则生效的IP地址 只有该IP地址发来的请求才会触发路由规则生效

	predicates:
	  - RemoteAddr=192.168.12.100

Gateway 整合 Nacos,实现负载均衡

在一些面临高并发请求的微服务项目中,往往会把实现相同功能的业务模块部署到不同的服务器上,同时把其中的业务方法都注册到Nacos组件中,通过Nacos组成业务集群。
在此基础上,可以通过Gateway组件,把对应的请求以负载均衡的方式转发到业务集群上,以此来应对高并发的挑战。
Gateway整合Nacos

Gateway整合Sentinel和Nacos

Gateway整合Nacos的目的是,把经由网关转发的请求以负载均衡的方式均摊到业务集群上,而Gateway整合Sentinel的目的是,在网关层统一地实现各种安全防护的效果。
整合效果
使用Sentinel的方法:在对应业务的方法前,通过@SentinelResource注解定义标识 并且在Sentinel控制台里通过这个方法名去定义这个方法所需要采用的安全防护策略。

通过Gateway实现灰度发布

灰度发布的做法是,在发布过程中,在老代码继续提供服务的基础上,在一台新的服务器上部署新代码,同时把一部分的流量切到部署新代码的服务器上。
灰度发布
优点:发布新代码的影响面小,而且一旦出问题可以马上把流量切回到老代码上;以试错的形式发布程序员可以一点点加流量观测日志来监控新代码的工作状态。
确定工作正常后再继续把新代码部署到其他服务器上,确保了版本升级的平稳性和低风险性。

面试题

简述灰度发布的流程
Gateway网关组件有哪些过滤器?这些过滤器能起到什么作用?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值