网关常见问题

      侯门一入深似海,从此萧郎是路人

1、什么是网关

总而言之,网关就是统一入口、鉴权校验、动态路由和过滤封装。

2、为什么需要网关

3、网关设计

我认为没有很大的必要去重复造车,现在市面上较为成熟的网关方案还是挺有借鉴价值的,不过我们仍可以了解下网关的设计思路。

不管是何种网关都需要满足以下的功能和特性: 请求路由、服务注册、负载均衡、弹力服务、安全、高性能和高可用

请求路由

当客户端请求过来,调用端无需知道自己实际调用的其它服务地址,统一交给 Gateway 来处理,避免了内部多个微服务直接对外暴露。

服务注册

网关的服务注册功能,就是为后端的服务实例提供服务的地址注册、取消注册,也就是注册一些 API 接口。这样Gateway 就可以根据接收到的请求中的信息来决定路由到正确的后端服务上。

负载均衡

一个网关用于接收多个服务实例,所以网关还需要在各个对等的服务实例上做负载均衡策略。常见的策略就是 Round-Robin 轮询、权重和最少使用。

弹力服务

网关应该让应用服务只关心自己的业务逻辑,要引入异步、重试、幂等、流控、熔断和监视等弹力服务手段。

安全

外界访问的第一步就是网关,其安全要求毋庸置疑。打头阵的网关作为全系统第一道防线对后端的服务进行保护,基本要满足SSL 加密及证书管理、Session 验证、授权、数据校验,以及对请求源进行恶意攻击的防范。

4、网关落地

了解了大概的网关设计思路,可以根据公司项目业务需求进行技术选型,现主要分为流量网关业务网关两大类。

流量网关

流量网关,大致就是控制流量进入集群的一类网关,比如一个服务集群有很多非法或无效的请求,需要将请求拒之门外,降低集群的流量压力。

业务网关

业务网关更注重与服务器应用层交互,如各个微服务的权限控制、日志输出、数据加密和熔断限流等。

5、常见的开源网关

OpenResty

Kong

Zuul1.0

Spring Cloud Gateway

侯门一入深似海
从此萧郎是路人

发表回复