API GateWay服务网关

SOA团队 2020-03-16

API网关是一个服务器,也可以说是进入系统的唯一节点。这与面向对象设计模式中的Facade模式很像。API网关封装内部系统的架构,并且提供API给各个客户端。它还可能还具备授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等功能。

对于API网关,虽然网上有类似Netfix Zuul和Kong等的开源实现,但是本篇重点还是想再思考下网关应该具备的一些关键功能点。主要还是是服务接入,服务运维,服务运营,服务安全,服务管控治理等几个方面来思考下一个完整的API网关应该具备或后续扩展的能力。

服务注册和服务接入能力

1. 直接将Java API接口发布为服务,即内部可以用Java API或RPC,跨模块访问走Rest接口服务注册到网关

2. 将已有的Rest API接口通过代理方式注册和接入

3. 将已有的Soap WS服务接入通过协议转换和数据格式转换后发布为Rest API服务接口

4. 将内部基于JMS或AMQP的消息适配后发布为Rest API服务接口

5. 提供服务自动化注册和接入的能力

网关接入和发布核心功能

1. 协议转换:重点是支持SOAP,JMS,Rest间的协议转换

2. 数据转换:重点是支持XML和Json之间的报文格式转换能力(可选)

3. 负载均衡:注意是网关本身的负载均衡,可以部署多个API网关形成Cluster集群

4. 路由:基础能力,基本的服务路由支持

服务安全

1. 基于Token的客户端访问控制和安全策略

2. 传输数据和报文加密,到服务端解密,需要在客户端有独立的SDK代理包

3. 基于Https的传输加密,客户端和服务端数字证书支持

4. 基于OAuth2.0的服务安全认证(授权码,客户端,密码模式等)

服务管控和治理

1. 服务消息和日志监控能力,能够查看详细的服务消息日志,在取中心化的网关中需要单独处理

2. 服务流量控制,限流和熔断能力,可以设置不同的流量控制策略

3. 服务链的监控和跟踪,可以跟踪多个服务间的调用链,需要进一步规约Trace_id的使用

面向开发者的自服务能力

1. 提供开发者门户和面向开发者的各种自服务能力

2. 提供API服务目录,服务详细说明,服务调用示例,在线测试等基础功能

3. 提供服务接入,服务订购关键自服务流程

4. 提供详细的服务开发案例代码,开发框架,本地SDK包,接入指南帮助文档等

返回上页