论文部分内容阅读
随着互联网技术的迅速发展、各行业服务资源的不断整合,构建云服务平台来实现企业数据和业务功能的互通与开放已经成为一种趋势。在万达云服务平台中,汇聚了政务、医疗、交通、安全等服务,是一个庞大的资源池。然而服务在以API的形式互通开放的时候,面临着服务资源入口分散、服务依赖关系混杂[1]等问题,导致在开放的过程中会遇到各种各样的困难,迫切需要对服务的开放和调用进行有效的管理和控制。针对上述问题,本文设计和实现了API网关软件,帮助万达云服务平台统一管理和定向开放API服务。论文的主要工作如下:(1)为了对入驻服务进行统一生命周期管理以及服务调用控制,API网关软件设计服务管理、版本管理、API管理模块,覆盖了API的开发、测试、发布整个生命周期,一个服务下可以有多个服务版本,一个服务版本下有多个API,通过在服务版本下创建多个API来聚合调用接口,服务版本的切换可以通过修改版本访问路径即可。(2)为了保障服务安全接入和可靠运行,API网关软件设计了应用鉴权和策略管理模块。在API被调用之前,首先要通过每个策略的校验,具体项包括缓存时间、白名单、访问频次、熔断阈值、配额等等。在应用申请服务的过程中,通过接口签名验证机制[2]来做应用鉴权,确保请求身份来源的可靠性、访问请求的不可复制性以及请求参数没有被篡改。(3)在API网关软件的实现过程中为了解耦前端和后台,通过NodeJS做前后端分离把部分应用层的业务逻辑交由前端工程处理,使得后端专注于复杂的业务逻辑和数据库操作。在处理数据存取的问题上,API网关软件采取了读写分离。从MySql往Redis同步使用频率比较高的数据,比如鉴权信息、缓存数据、白名单等数据使用Redis数据库进行存储,从而提高数据的读取效率。对API网关软件进行测试,结果表明,API网关软件简化了服务管理、部署和使用的整个过程,使得服务集成更加便捷,可以帮助万达云服务平台实现服务统一管理和定向开放,为入驻服务提供统一的网关出口的同时,也为服务的使用者提供了基础的数据支撑平台。