论文部分内容阅读
随着互联网和软件技术的发展,软件系统架构从单体式架构到面向服务架构一直在不断演进。近年来,面向服务的架构方式由于其灵活、解耦、规范化等诸多优势,被广泛应用于大型企业系统架构。但是基于ESB(Enterprise Service Bus)构建的面向服务架构也存在集中化、成本高、维护难等问题。对于面向服务架构的不足,国内外互联网企业探索通过微服务架构方式,优化系统服务化的构建和管理。微服务架构去中心化、高度自治、自动化等特点进一步对系统架构进行解耦,并且和敏捷迭代、DevOps文化更加契合,可以使用较低的成本,满足企业软件研发体系结构发展需要,提高研发效率,规范服务治理。本文对使用API网关构建微服务系统进行了分析和研究。首先,基于Spring Boot框架和Protocol Buffers实现了高效的微服务开发框架,它支持服务定义、服务注册发现、服务间REST和RPC通信、服务持续集成等功能。另外,结合Nginx和Lua语言的OpenResty平台,开发了具有权限校验、流量控制、反向代理等功能的高性能的API网关以及API网关的业务管理系统。按照软件工程研发的流程和方法,结合公司具体业务和服务治理需求,通过用例建模分析系统需求、通过系统逻辑架构完成公司服务治理方案、微服务开发框架和API网关的架构设计,分析和实现了各系统之间主要接口,完成了 API网关的数据库设计。设计流程图、类图和时序图,完成本人主要负责的服务框架脚本工具、服务间通信、API网关请求代理以及流量控制配置功能的详细设计并进行编码实现。最后通过功能性测试和非功能性测试对系统功能和性能进行了验证。目前本项目的微服务开发框架已经在公司多个产品线中投入使用,API网关每日支撑了数亿次API调用请求。随着公司继续推进微服务架构快速发展,平台化服务框架的生态会更加丰富和完善。