基于微信的微服务系统设计
2019-04-28李丹丹
文/李丹丹
随着计算机技术、互联网技术以及智能终端日渐融入人们的日常生活,智能服务逐渐细化并逐渐聚焦成一个指定的业务功能或业务需求,此类细小服务功能单一、独立,但数量众多庞大。传统的服务系统由于开发成本高昂、开发技术难度较高、开发时间周期较长,严重地阻碍了智能服务系统为人们的日常生活提供服务,因此一种微服务新技术诞生于人们的日常生活服务。微服务系统能够被2到5人的小团队单独开发、支持不同的语言开发、允许容易且灵活的方式集成自动部署、易于被一个开发人员修改和维护、便于融入最新技术、能部署在中低端配置的服务器上、拥有独立的存储能力和数据库,由此可见,微服务系统具有开发和运维成本低、服务器性能要求较低、便于融入新技术等诸多优势。截止目前,较成熟的微服务开发平台主要为微信、支付宝、米家,其中微信平台技术程度相对较高,因此本文对基于微信的微服务系统设计展开了研究。
1 微服务研究
微服务指的是单个小型化的业务功能服务,每个微服务都有独立处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务系统是一种松耦合的面向服务架构,与紧耦合服务架构不同,开发或修改不需要对每个服务都进行开发或修改,因此微服务架构具备主要特点具备组件化、松耦合、自治、去中心化等优势。
通过对微服务系统结构的特性分析可知,微服务聚焦一个指定的小型业务功能或业务需求,系统开发效率高,集中式管理,代码维护易,部署灵活,构建时间短,稳定性高。
随着持续交付概念推广以及Docker容器普及,微服务将这两种理念和技术结合起来,形成新的“微服务+API +平台”的开发模式,提出了容器化微服务的持续交付概念。微服务促进了DevOps方式的重组,将一个大臃肿的整体产品开发队伍切分为根据不同微服务的划分的产品队伍,以及一个大的整体的平台队伍负责运营管理,两者之间通过API交互,做到了松耦合隔绝。
图1:基于微信设计的微服务系统
(1)需要考虑构建DevOps能力,这是保证微服务架构在持续交付和应对复杂运维问题的动力之源。
(2)保持微服务持续演进,使之能够快速、低成本地被拆分和合并,以快速响应业务的变化。
(3)保持团队和架构对齐,微服务通过技术层面的变革,对团队结构和组织文化有很强的要求和影响,识别和构建匹配架构的团队是解决问题的一大支柱。
(4)打造持续改进的自组织文化是实施微服务的关键基石。只有持续改进、持续学习和反馈,持续打造这样一个文化氛围和团队,微服务架构才能持续发展下去,保持新鲜的生命力,从而实现“快速响应”的初衷。
2 基于微信的微服务系统设计
基于微信平台所设计的微服务系统采用B/S结构,微信用户借助微信小程序访问微系统,B端为微信小程序,S端为微服务系统。微信小程序将用户行为信息封装为微信消息数据上传至微信服务平台,微信服务平台通过对微信消息数据的解析、处理与封装,借助广域网将其转至微服务系统,微服务系统根据消息指令快速作出响应。基于上述分析可知,前端微信小程序与中间层微信服务平台之间通过API实现信息传递,微信服务平台与后端微服务系统之间通过API实现信息交互。
如果这些命令是微信消息格式的命令,就会通过微信服务器转发到对应的公众号托管接口上,由反向代理服务器通过微信通信接口服务器来处理。如果这些命令是Web形式的页面请求,微信客户端将会通过内置的浏览器直接向反向代理服务器发送请求,反向代理服务器检索其所请求的公众号服务所在的Web应用服务器,然后由对应的Web应用服务器对该请求作出响应,由此可见,此种模式是一种将持续交付概念和Docker容器相结合的“微服务+API +平台”的开发模式,所设计的微服务系统如图1所示。
3 结论
本文先对微服务展开了研究,微服务聚焦一个指定的小型业务功能或业务需求,系统开发效率高,集中式管理,代码维护易,部署灵活,构建时间短,稳定性高。根据持续交付概念与Docker容器相结合的“微服务+API +平台”的开发模式,本文设计了一套由微信小程序、微信服务平台、后端微服务系统组成的微服务系统。