为什么需要网关?

如果允许任何人访问微服务,查看我们的敏感业务,这样数据是不是不安全。如果是我们的工作人员并且有相应的查看权限,我们才提供访问权限。那谁来做这件事呢?就是我们的网关。

 网关的功能作用

1)身份认证和权限校验。

一切请求要先经过网关,再到微服务。请求来了,我需要验证你是谁?验证通过才放行到对应的微服务。

2)服务路由、负载均衡。

例如一个查询用户信息请求进来,经过网关。网关能查询用户信息吗?不能,网关只能路由到对应的userservice微服务上,让userservice微服务处理,路由到支付的微服务的话,是无法处理这个请求的。这个就是服务路由。

然后,userservice微服务里面有很多个实例,要选择哪个实例处理这个请求呢?这个就是负载均衡。

3)请求限流。

例如每个微服务限制的请求是500个,现在来了2000个,那么网关就会控制这些请求,进行限制。

SpringCloud中网关的实现包括两种

 在SpringCloud中网关的实现包括两种:gateway、zuul。

Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式变成的实现,具备更好的性能,更高的吞吐量。

总结

 网关的作用:

1、对用户请求做身份认证、权限校验;

2、将用户请求路由到微服务,并实现负载均衡;

3、对用户请求做限流;

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐