微服务之API网关接口设计
API网关,顾名思义,就是外部到内部的一道门,其主要功能:
- 服务路由:将前段应用的调用请求路由定位并负载均衡到具体的后端微服务实例,对于前端应用看起来就是1个应用提供的服务,微服务对于前段应用来说就是黑盒,前段应用也不需要关心内部如何分布,由哪个微服务提供。主要有静态路由和动态路由。
- 静态路由:有时候需要通过域名或者其他固定方式提供和配置路由表
- 动态路由:通过服务发现服务,动态调整后端微服务的运行实例和路由表,为路由和负载均衡提供动态变化的服务注册信息。
- 安全:统一集中的身份认证,安全控制。比如登录,签名,黑名单等等,还可以挖掘和开发更高级的安全策略。
- 弹性:限流和容错,也是另一个层面的安全防护,防止突发的流量或者高峰流量冲击后端微服务而导致其服务不可用,另一方面可以在高峰期通过容错和降级保证核心服务的运行。
- 监控:实时观察后端微服务的TPS、响应时间,失败数量等准确的信息。
- 日志:记录所有请求的访问日志数据,可以为日志分析和查询提供统一支持。
- 其他,当然还有很多需要统一集中管理的都可以在网关层解决。
定制的路由规则的主要功能: