提供微服务架构系统的方法和该微服务架构系统技术方案

技术编号:30410131 阅读:20 留言:0更新日期:2021-10-20 11:38
一种基于代理模块提供微服务架构系统的方法和相应的系统。该方法包括:提供多个微服务模块,微服务模块各自包括网络模块和业务代码模块,其中在业务代码模块中引入代理模块的代理注解组件,该代理注解组件被配置用以在所述业务代码模块的对外应用程序接口中标注相应的注解;以及在微服务模块的网络模块中引入代理模块的代理实现组件,该代理实现组件被配置用以通过扫描所述代理注解组件标注的相应的注解,使得所述微服务模块能够借助于所述代理模块实现微服务模块间通信。利用本发明专利技术可以使业务代码模块的开发不依赖于单体服务架构或微服务架构,降低了业务代码模块与技术架构的耦合,提高了业务代码模块的开发效率以及业务代码的应用灵活度。务代码的应用灵活度。务代码的应用灵活度。

【技术实现步骤摘要】
提供微服务架构系统的方法和该微服务架构系统


[0001]本专利技术涉及微服务架构系统开发领域,更具体而言,涉及基于代理模块提供微服务架构系统的方法、基于代理模块提供的微服务架构系统、相应的计算机设备和计算机可读存储介质。

技术介绍

[0002]在服务类型的软件应用程序开发过程中,根据要求,可以将服务构建为单体服务架构系统或微服务架构系统。例如,为了满足小企业的部署简单、维护方便的要求时,需要将服务构建为单体服务架构系统,而为了满足大型企业和超大型企业的分布式计算要求,需要将服务构建为微服务架构系统。目前,需要针对单体服务架构和微服务架构分别进行设计和实现,服务开发的设计成本、开发成本、测试成本和维护成本较高。业务代码模块的开发依赖于单体服务架构或微服务架构,业务代码模块与技术架构的耦合较高,并且业务代码的开发效率以及业务代码的应用灵活度较低。
[0003]因此,存在对能够解决或缓解上述问题至少之一的方案的需要。

技术实现思路

[0004]本专利技术的目的在于提供一种解决或缓解上述问题中的至少之一的方案。
[0005]具体地,根据本专利技术的第一方面,提供一种基于代理模块提供微服务架构系统的方法,所述代理模块包括代理注解组件和代理实现组件,所述微服务架构系统包括多个微服务模块,所述方法包括:
[0006]提供多个微服务模块,所述多个微服务模块各自包括网络模块和业务代码模块,其中在所述业务代码模块中引入所述代理模块的代理注解组件,所述代理注解组件被配置用以在所述业务代码模块的对外应用程序接口中标注相应的注解;以及
[0007]在所述微服务模块的网络模块中引入所述代理模块的代理实现组件,所述代理实现组件被配置用以通过扫描所述代理注解组件标注的相应的注解,使得所述微服务模块能够借助于所述代理模块实现微服务模块间通信。
[0008]根据本专利技术的第二方面,提供一种基于代理模块提供的微服务架构系统,所述代理模块包括代理注解组件和代理实现组件,所述微服务架构系统包括多个微服务模块,所述多个微服务模块各自包括网络模块和业务代码模块,其中,
[0009]在所述业务代码模块中引入所述代理模块的代理注解组件,所述代理注解组件被配置用以在所述业务代码模块的对外应用程序接口中标注相应的注解;以及
[0010]在所述微服务模块的网络模块中引入所述代理模块的代理实现组件,所述代理实现组件被配置用以通过扫描所述代理注解组件标注的相应的注解,使得所述微服务能够借助于所述代理模块实现微服务模块间通信。
[0011]根据本专利技术的第三方面,提供一种计算机设备,其包括存储器和处理器,所述存储器上存储有计算机指令,所述计算机指令在由所述处理器执行时导致上述的方法被执行。
[0012]根据本专利技术的第四方面,提供一种非暂时性计算机可读存储介质,其上存储有计算机指令,所述计算机指令在由处理器执行时导致上述的方法被执行。
[0013]根据本专利技术,在开发应用时,在微服务模块的业务代码模块中引入代理模块的代理注解组件,在微服务模块的网络模块中引入所述代理模块的代理实现组件,以便于根据需要既可以实现单体服务架构也可以利用所述代理注解组件和所述代理实现组件实现微服务架构。利用本专利技术的方案,可以使业务代码模块的开发不依赖于单体服务架构或微服务架构,降低了业务代码模块与技术架构的耦合,提高了业务代码模块的开发效率以及业务代码的应用灵活度。
附图说明
[0014]以示例的方式参考以下附图描述本专利技术的非限制性且非穷举性实施例,其中:
[0015]图1示出了根据本专利技术的服务模块的示意图;
[0016]图2示出了根据本专利技术的代理模块的示意图;
[0017]图3是根据本专利技术的基于代理模块提供微服务架构系统的方法的流程图;
[0018]图4是根据本专利技术的基于代理模块提供的微服务架构系统的示意图;以及
[0019]图5是示出根据本专利技术的基于代理模块提供的微服务架构系统的微服务模块之间的调用的示意图。
具体实施方式
[0020]为了使本专利技术的上述以及其他特征和优点更加清楚,下面结合附图进一步描述本专利技术。应当理解,本文给出的具体实施例是出于向本领域技术人员解释的目的,仅是示例性的,而非限制性的。
[0021]在以下描述中,阐述了许多具体细节以提供对本专利技术的透彻理解。然而,对于本领域普通技术人员来说将明显的是,不需要采用具体细节来实践本专利技术。在其他情况下,未详细描述众所周知的步骤或操作,以避免模糊本专利技术。
[0022]为了便于理解本专利技术,图1示出了根据本专利技术的服务模块的示意图。如图1中所示出的,服务模块100包括网络模块101和业务代码模块102。业务代码模块可以包括业务代码包。业务代码包是具备核心业务功能的程序代码包,该程序代码包可以包括业务开发人员需要进行开发迭代的业务逻辑代码,其能够用于在本地开发环境下进行业务的单体开发及服务调试。
[0023]图2示出了根据本专利技术的代理模块的示意图。如图2中所示出的,代理模块200包括代理注解组件201和代理实现组件202。仅当代理注解组件和代理实现组件同时存在于一个服务模块中时,它们才能够实现代理模块的完整功能。为了使业务代码模块的开发不依赖于单体服务架构或微服务架构,降低业务代码模块与技术架构的耦合,提高业务代码模块的开发效率以及业务代码的应用灵活度,在开发业务代码模块时,不必考虑所开发的业务代码模块是用于单体服务架构还是用于微服务架构,在所开发的代码模块中都引入代理模块的代理注解组件。
[0024]在所开发的业务代码模块用于单体服务的情况下,单体服务可以不需要依赖业务代码模块中引入的代理注解组件(也无需相应的代理实现组件)实现相应的功能,即,单体
服务不依赖于代理模块的完整功能的实现。具体地,在一个实施例中,单体服务包含网络(web)模块和业务代码(core)模块,web模块作为启动入口会引入core模块启动整个单体服务;core模块开发过程中引入微服务的代理注解组件,例如在业务开发中对外应用程序接口(API)会标注相应的注解;此时代理模块在单体情况下是无作用的(无代理模块的代理实现组件),此时调用走的是Spring架构的IOC(Inversion of Control,控制反转)的注入和调用方案。
[0025]若所开发的业务代码模块用于微服务,则还需在服务模块的网络模块中引入代理模块的代理实现组件。由于业务代码模块中引入的代理注解组件和网络模块中引入的代理实现组件能够形成完整的代理模块,因此能够实现代理模块的动态代理功能。
[0026]在业务代码模块的开发中引入代理注解组件的做法可以使得业务代码可以具有更灵活的应用,既可以应用于单体服务架构,也可以应用于微服务架构。另外,也可以通过引入相应的代理模块的代理实现组件,实现单体服务模块向微服务模块的转变。由此,使业务逻辑与技术框架分割,降低了业务代码与技术框架的耦合,提高了业务代码的开发效率。
[0027]根据以上描述可知本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代理模块提供微服务架构系统的方法,所述代理模块包括代理注解组件和代理实现组件,所述微服务架构系统包括多个微服务模块,所述方法包括:提供多个微服务模块,所述多个微服务模块各自包括网络模块和业务代码模块,其中在所述业务代码模块中引入所述代理模块的代理注解组件,所述代理注解组件被配置用以在所述业务代码模块的对外应用程序接口中标注相应的注解;以及在所述微服务模块的网络模块中引入所述代理模块的代理实现组件,所述代理实现组件被配置用以通过扫描所述代理注解组件标注的相应的注解,使得所述微服务模块能够借助于所述代理模块实现微服务模块间通信。2.根据权利要求1所述的方法,其特征在于,所述微服务模块间通信是通过所述代理模块基于表示性状态转移的应用程序接口的通信。3.根据权利要求1所述的方法,其特征在于,所述微服务模块间通信是通过以下方式实现的:所述代理模块的所述代理实现组件被配置用以能够扫描所述代理注解组件标注的相应的注解生成动态代理的类方法,以响应于从所述多个微服务模块中的服务消费者到所述多个微服务模块中的服务提供者的请求消息进行微服务模块间通信并且将调用结果提供给所述服务消费者。4.根据权利要求1

3中任一项所述的方法,其特征在于,所述方法还包括:所述多个微服务模块在启动时将其相应的信息注册到服务注册中心并且存储在所述服务注册中心中,其中所述信息至少包括所述微服务模块各自的地址;所述多个微服务模块中的服务消费者在启动时向注册中心订阅其所需的微服务模块;以及当所述服务消费者调用所述多个微服务模块中的服务提供者时,所述服务消费者的代理模块从所述服务注册中心获得所述服务提供者的地址、通过所获得的地址与所述服务提供者通信,并且在通信结束之后将数据封装并且转发给所述服务消费者。5.根据权利要求4...

【专利技术属性】
技术研发人员:刘庆龙张智慧王威宓志明
申请(专利权)人:北京元年科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1