基于微服务架构的分布式云平台系统的制作方法

文档序号:12037966阅读:870来源:国知局

本发明涉及云平台系统,具体涉及一种基于微服务架构的分布式云平台系统。



背景技术:

微服务架构(msa)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦,使用微服务作为主要架构类型的系统是一个拥有大量协调微服务的分布式系统。再结合soa面向服务的体系结构,使系统兼备高性能、高可用、低成本、高可治理等诸多优点。

互联网行业的快速发展,敏捷、精益方法论的深入人心以及传统it系统面临互联网的挑战。过去的十年中,互联网对我们的生活产生了翻天覆地的变化。网上购物、网上订餐、网上支付等活动都可以在网上进行,越来越多的公司开始依赖互联网技术打造其核心的竞争优势。在这种情况下,如何快速响应用户的需求,如何用有效的技术服务于用户、并为用户持续提供价值,逐渐成为决定企业是否具有市场竞争力的重要因素之一。

纵观it行业过去这些年中敏捷、精益、持续交付等价值观、方法论的提出以及实践,归根到底也是在围绕着如何帮助企业应变市场变化、提高对市场的响应力以及可持续发展能力。敏捷方法论帮助组织消除浪费,通过反馈不断找到正确的方向;持续交付帮助组织构建更快、更可靠、可频繁发布的部署和交付机制;云、虚拟化和基础设施自动化(infrastructureascode)的使用则极大的简化环境的创建、配置、安装以及部署;消息中间件的引入使得大并发变得简单。这时候,逐渐完善并改进各个细节的需求就会更加强烈。所谓细节,就是类似如何找到灵活性高、扩展性好的架构方式、如何用更合适的技术解决业务难题等。譬如说,在持续交付流水线已经趋于可靠、稳定的前提下,如何在技术上、架构上进行优化,进一步缩短产品构建的周期、进一步缩短自动化测试的周期等。

互联网时代的产品通常有几类特点:创新成本低、需求变化快,用户群体庞大,它和几年前我们熟悉的传统企业的it系统——我们一般称为单块架构应用(逻辑分层、功能集中、代码和数据中心化,并且运行在同一进程的应用程序)有着本质的不同。这类单块架构系统随着需求变化快,用户访问量增加,面临着越来越多的挑战。譬如说,随着功能的增多,代码量逐渐增多,产品的维护成本、人员的培养成本、缺陷修复成本、技术架构演进的成本、系统扩展成本等都在增加。因此,在面临这种挑战下,如何找到一种更有效的、更灵活、更适应当前时代需求的应用架构方式就成了大家关注的焦点。



技术实现要素:

本发明所要解决的技术问题是:提出一种基于微服务架构的分布式云平台系统,实现高并发性能、高扩展、松耦合、低成本和可治理的分布式云平台系统。

基于微服务架构的分布式云平台系统,包括交互层、接口层、服务层、数据层;

所述交互层,用于为用户提供人机交互功能,其包括web应用和移动应用,其中web应用包括租户云单、云单管理平台、单据工具、记账工具;移动应用包括android端应用、ios端应用;

所述接口层,用于提供接入鉴权、业务鉴权和业务封装功能,为交互层提供安全、高效的功能接入;其包括租户云单接口引擎、云单管理接口引擎、单据工具接口引擎、记账工具接口引擎;

所述服务层,利用微服务架构方式进行服务细化,包括单据中心、记账中心、ocr中心、报表中心、用户中心、消息中心和对接中心;各个中心相互独立各不影响,并根据功能需求任意异构;所有中心均采用spring框架,集成持久化框架jpa及数据库连接池druid以进行高并发访问数据;

所述数据层,用于为各个处理中心提供数据存储和访问支撑,通过分布式插件实现mysql数据库的分布式部署,其包括单据库、凭证库、颗粒库、报表库、管理库和用户库。

作为进一步优化,所述交互层采用原生servlet提供访问安全控制相关逻辑封装。

作为进一步优化,所述接口层采用spring框架,其采用springmvc提供rest风格的http接口,采用json格式封装数据,并集成mongodb进行关键数据缓存。

作为进一步优化,所述服务层中的ocr中心集成ocr图像识别软件,消息中心集成消息队列服务器、邮件服务功能和短信服务功能,对接中心集成cxf实现webservice接口。

作为进一步优化,在所述分布式云平台系统中,交互层通过http的rest风格接口访问接口层,接口层通过dubbo框架访问服务层,服务层通过jpa访问数据层。

本发明的有益效果是:

本发明基于数据资产化基础平台,采用微服务架构并整合高性能rpc框架(dubbo)、分布式消息队列技术(rocketmq)、分布式数据库技术、分布式内存数据库技术(mongodb)、分布式文件服务技术(fastdfs)、接口技术等实现高并发性能、高扩展、松耦合、低成本和可治理的分布式平台系统。

具体实施方式

本发明基于微服务架构思维,结合soa(service-orientedarchitecture)、dubbo等优秀分布式框架搭建面向互联网的大型分布式云服务平台,该平台包括:交互层、接口层、服务层、数据层。下面对各层进行具体阐述:

交互层,包括web应用(租户云单、云单管理平台、单据工具、记账工具)、移动应用(android端、ios端)。其利用html技术、jquery技术、flex技术为用户提供快速友好的人机交互体验,采用原生servlet提供访问安全控制相关逻辑封装。html为解释型语言,对比编译型语言(如jsp),其省去了繁琐的编译过程,访问速度具有绝对的优势,同时html结合css、div技术开发前端交互界面非常快速且可维护性强,展现效果丰富。jquery技术实现异步刷新访问数据,较传统的页面整体刷新方式更友好,传输数据量更小,速度更快。flex技术开发复杂的人机交互界面得心应手,更能使b/s软件达到c/s软件的效果。原生servlet技术使得交互层变得更轻量级,维护更加简单,开发门槛更低。以上技术结合到一起,极大提高平台的并发性能,从而达到1+1>2的效果。

接口层,包括租户云单接口引擎、云单管理接口引擎、单据工具接口引擎、记账工具接口引擎。主要提供接入鉴权、业务鉴权和业务封装等功能,为交互层提供安全、高效的功能接入。本层采用spring框架,采用springmvc提供rest风格的http接口,json格式封装数据,集成mongodb进行关键数据缓存并杜绝本层应用访问关系型数据库,已达到高并发快速响应。spring框架作为轻量级的j2ee框架,几乎支持所有的开源功能插件,使得功能集成变得简单,具备极高的扩展性。同时依赖注入(ioc)、面向切面(aop)、事务控制等方式使得性能表现非常优秀。springmvc作为spring框架的子项目,更能完全无缝集成到spring框架中,并支持rest风格的http接口的快速开发。为达到快速响应和高并发,引入分布式的内存数据库mongodb对关键数据进行存储,如访问率高的安全鉴权数据、身份数据等,切断服务器与关系数据库的交互,由此极大提高接口引擎的响应速度和并发性能。

服务层,利用微服务架构方式进行服务细化,包括单据中心、记账中心、ocr中心、报表中心、用户中心、消息中心和对接中心。各个中心相互独立各不影响,做到根据功能需求任意异构。所有中心均采用spring框架,集成持久化框架(jpa)及数据库连接池(druid)以达到高并发访问数据目的。其中,ocr中心集成ocr图像识别软件,消息中心集成消息队列服务器(rocketmq)、邮件服务功能和短信服务功能,对接中心集成cxf实现webservice接口。各个处理中心均针对不同的业务,因此其技术集成必须能够满足异构性,而微服务架构并结合dubbo框架的使用,使得异构变为现实。同时各个处理中心只访问自己的关系型数据库(mysql),减少业务耦合性的同时增加了数据访问并发性能。结合性能优秀的数据库连接池(druid),平台数据访问整体性能得到质的飞越。而持久化框架(jpa)使开发门槛更低。分布式系统最大的难点在于分布式事务的处理,而消息队列(rocketmq)的引入巧妙的解决了这个难题。基于长连接的rpc框架(dubbo)并结合分布式消息队列(rocketmq),使并发性有了数量级的提升。

数据层、包括单据库、凭证库、颗粒库、报表库、管理库和用户库,分别为各个处理中心提供数据存储和访问支撑,通过分布式插件实现mysql数据库的分布式部署。交互层通过http的rest风格接口访问接口层,接口层通过dubbo框架访问服务层,服务层通过jpa访问数据层。http请求使用nginx进行负载,dubbo服务通过zookeeper负载和可视化服务治理。平台所有文件存储和访问统一使用分布式文件服务器(fastdfs),以提高并发性和易用性。

通过引入dubbo管理界面及持续集成工具(jenkins),使得大型分布式平台的维护、部署、服务治理变得非常简单。

在具体实施上,要实现本发明中的分布式云平台系统,需要经过对数据资产化基础平台总体架构—架构平台交互层—架构平台接口层—架构平台服务层—架构平台数据层的处理步骤,下面进行具体说明:

1)根据需求对数据资产化基础平台总体架构:确定项目技术框架需要满足的各项性能指标;对实现这些要求的各项技术进行选型。明确使用大型分布式的soa架构进行设计,以满足互联网环境下的高并发访问;采用纵向分层结构提高项目的灵活性,各层之间通过接口相互调用,提高功能的复用性和通用性;采用微服务模式对平台进行横向拆分,减少各个业务模块间的耦合性,提高可扩展性,提高易用性和稳定性等。所有插件均要求支持分布式,从而打造出一个完全分布式的大型平台;

2)架构数据资产化基础平台的交互层:采用html语言,结合css和js进行界面开发,并使用flex开发规则检查的公式编辑界面。采用servlet进行后端调用逻辑封装,提高接口访问安全性,同时降低开发难度。采用tomcat作为应用服务器,增加平台稳定性;

3)架构数据资产化基础平台的接口层:采用java开发语言达到跨平台目的,使用致力于提供高性能和透明化的rpc远程服务调用方案的分布式soa开源框架dubbo,对于服务层,接口层作为服务消费方,使用zookeeper为接口层、服务层提供注册服务。集成dubbo到spring框架中,集成jpa、mongodb等,使用springmvc框架提供http标准接口,对于交互层,接口层为服务提供方。采用tomcat作为应用服务器。集成dubbo到spring框架中;

4)架构数据资产化基础平台的服务层:采用java开发语言,使用致力于提供高性能和透明化的rpc远程服务调用方案的分布式soa开源框架dubbo,本层所有子平台作为服务提供方。集成dubbo到spring框架中,并集成jpa框架和druid框架,采用jar包方式启动服务;消息中心集成分布式消息队列(rocketmq),集成邮件功能和短信功能;外接中心集成cxf框架。

5)架构数据层:采用分布式mysql数据库,采用分布式文件服务器(fastdfs)平台实现对文件存储和访问以提高并发性和易用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1