本发明涉及计算机软件和互联网,特别涉及一种单体微服务代码架构方法、设备及计算机可读储存介质。
背景技术:
1、saas是software-as-a-service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。它与"on-demandsoftware"(按需软件),the application service provider(asp,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务。一般来说,体量较大的客户,业务和用户量都很大,会更加关注系统的性能、架构、伸缩性、扩展性等等,就需要分布式微服务架构来满足性能的需求。而体量较小的客户,用户量并不大,没有那么高的性能要求,只需要部署一个单体服务就能满足用户的日常信息化处理。
2、传统的代码架构模式,一套代码不能同时支持单体部署和微服务部署。因为单体架构和微服务架构的复杂度不同。微服务架构通常会使用很多服务治理中间件,例如配置中心、注册中心、链路追踪、熔断限流、分布式事务、网关、rpc服务调用、分布式日志系统等等。对业务代码有很强的侵入性,造成部署架构只能是单一的仅支持微服务架构部署方式,不光业务服务需要大量服务器资源,各种服务治理中间件同样需要大量的服务器资源,甚至还需要高可用方式部署,更加消耗服务器资源。这种架构和部署方式,对小客户和并发量不大的客户是无法接受的,使用微服务部署方式的服务器成本大、运维成本高,不利于签单和后期的维护。单体架构简单、部署成本低、可伸缩性差、能够支撑的并发量有限,对于小客户完全能满足他们的需求,只需要购买少量的服务器就能使用。但是对于大客户,用户量大并发高、数据量大,不能很好的对业务服务进行横向扩展,造成性能瓶颈,影响用户体验,甚至可能造成退单。
3、因此,一种可同时适配单体部署和微服务部署的代码架构亟待开发。
技术实现思路
1、为了解决现有代码架构中不能同时满足单体部署和微服务的弊端,本发明中披露了一种单体微服务代码架构方法、设备及计算机可读储存介质,本发明的技术方案是这样实施的:
2、一种单体微服务代码架构方法、设备及计算机可读储存介质,所述代码架构同时支持单体部署和微服务部署;
3、所述代码架构包括本地事务调用服务、分布式事务调用服务、n个服务模块和单体模块;
4、所述单体模块设置有排除微服务相关程序依赖的配置;
5、所述代码架构基于单体部署和微服务部署的不同需求,执行不同的部署流程;
6、所述方法包括如下步骤:
7、当选择单体部署时,单体模块排除微服务相关程序依赖,并将所需服务模块以jar包的方式引入,打包成单体jar包,所述代码架构将所述单体jar包以可执行文件的形式部署发布并启动本地事务调用服务;
8、当选择微服务部署时,所述代码架构发布微服务打包命令,将所需服务模块分别打包成jar包,然后将jar包分别部署发布并启动分布式事务调用服务。
9、优选地,所述n个服务模块中,包括一级执行模块和二级执行模块;
10、当选择单体部署时,所述一级执行模块基于本地事务调用服务同时调用若干个所述二级执行模块,若干个所述二级执行模块操作同一个数据库;
11、当选择微服务部署时,所述一级执行模块基于分布式事务调用服务同时调用若干个所述二级执行模块,若干个所述二级执行模块分别操作不同的数据库。
12、优选地,所述本地事务调用服务、分布式事务调用服务均采用注解的方式执行命令。
13、优选地,还包括设置用户级别;
14、所述方法基于用户级别的不同,开放相应等级的服务模块数量和类型。
15、一种单体微服务代码架构设备,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述单体微服务代码架构方法的步骤。
16、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现单体微服务代码架构方法的步骤。
17、本发明的技术方案可解决现有技术中单体部署和微服务部署不能兼容的问题,本发明的技术方案,通过模块化打包部署、基于注方式的分布式事务和依赖排除,实现了一套代码架构同时满足不同体量企业对单体部署和微服务部署的需求,减少了开发成本,简化了部署流程,同时通过动态代理的方式做到对代码无入侵。
1.一种单体微服务代码架构方法、设备及计算机可读储存介质,其特征在于,所述代码架构同时支持单体部署和微服务部署;
2.根据权利要求1所述的方法,其特征在于,所述n个服务模块中,包括一级执行模块和二级执行模块;
3.根据权利要求1所述的方法,其特征在于,所述本地事务调用服务、分布式事务调用服务均采用注解的方式执行命令。
4.根据权利要求1所述的单体微服务代码架构方法,其特征在于,还包括设置用户级别;
5.一种单体微服务代码架构设备,其特征在于,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的单体微服务代码架构方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的单体微服务代码架构方法的步骤。