论文部分内容阅读
传统的企业信息系统主要由一个应用程序来完成所有的业务需求,这种软件架构称之为单体应用架构。而在当今社会,需求的变化越来越迅速,企业为了快速响应这些变化,需要对生产工艺或者工作流程等进行及时的调整。若采用单体应用架构开发信息系统,则会由于需求的变化导致整个系统频繁的修改、测试和部署。并且随着需求增加,代码量变大使得模块间的耦合性越来越强,每一次功能的添加修改都会带来难以预料的风险。本文是基于与一家服装企业的合作项目,服装企业也面临着时尚潮流快速变化、个性化需求大量增加的问题。为了解决这个问题,本文提出了一个基于微服务的企业信息系统架构,通过将不同的业务模块设计成独立开发、测试和部署的微服务,从而实现业务的快速开发和部署。在需求发生变化后,只需要新增微服务或者修改对应的微服务,而不需要对整个系统进行修改。本文主要工作如下:本文研究了常用的微服务架构,并结合服装行业的特点,选择了服务发现、服务网关和权限控制作为信息系统的基础组件。服务发现作为微服务架构的核心组件之一,其高可用性成为影响整个微服务架构整体稳定性的重要因素,所以一般会采用分布式部署的方式来提高服务发现的可用性。目前一般的分布式服务发现都采用经典Paxos、ZAB等算法保证即节点间数据的一致性,但是这些算法采用了复杂的机制来保证普遍的数据一致性。本文根据服务发现数据的特点改进Raft算法,保证集群节点数据一致性的同时简化了算法流程。实验结果表明,在本场景下,改进后的算法在出错后能以更快的速度恢复数据的一致性。为了保证系统安全,本文基于OAuth2.0协议和JWT技术设计实现了基于角色的分布式系统权限控制,利用授权服务器,将用户身份的验证从其他微服务中独立出来,进行统一管理,避免了重复开发、数据一致性等问题。利用服务网关作为用户代理,实现了用户只需要一次登录就能访问整个系统。本文设计了一种轻量级的服务间异步消息交互机制,保证了消息传递的可靠性,降低了对消息队列等重量级通信组件的依赖,降低了系统的运维成本。实验结果表明,本机制能够保证在程序发生异常时消息最终被接收。