Spring Cloud Alibaba 服务门户:Spring Cloud Gateway 如何把好微服务的大门
上一讲我们学习了 Dubbo 是如何与 Nacos 协同作业。通过对比 RESTful 与 RPC,我们介绍了两种通信方式的区别,再通过实例讲解如何将 Dubbo 与 Nacos 进行整合。但你是否发现无论是基于 OpenFeign 的 RESTful 通信,还是基于 Dubbo 的 RPC 通信,它们都在强调的是微服务间的信息传递,属于微服务架构内部的事情。而对于用户端从外侧访问微服务如何有效管理,微服务又是如何将接口暴露给用户呢?这就需要通过 API 网关实现需求了,本讲咱们就针对 API 网关学习三方面知识:
- 介绍 API 网关的用途与产品;
- 讲解 Spring Cloud Gateway 的配置技巧;
- 讲解 Gateway执行原理与自定义过滤器(Filter)。
API 网关的作用
如下图所示,对于整个微服务来说如果将每一个微服务的接口直接暴露给用户是错误的做法,这里主要体现出三个问题:
服务将所有 API 接口对外直接暴露给用户端,这本身就是不安全和不可控的,用户可能越权访问不属于它的功能,例如普通的用户去访问管理员的高级功能。
后台服务可能采用不同的通信方式,如服务 A 采用 RESTful 通信,服务 B 采用 RPC 通信,不同的接入方式让用户端接入困难。尤其是 App 端接入 RPC 过程更为复杂。
在服务访问前很难做到统一的前置处理,如服务访问前需要对用户进行鉴权,这就必须将鉴权代码分散到每个服务模块中,随着服务数量增加代码将难以维护。
还没有评论,来说两句吧...