微服务架构处理方法及系统技术方案

技术编号:38334285 阅读:8 留言:0更新日期:2023-08-02 09:14
本申请公开了一种微服务架构处理方法,该方法包括:根据领域驱动设计梳理界限上下文并划分业务子领域;在每个子领域内,根据同步逻辑、异步逻辑拆分成实时应用和异步任务应用两个微服务;在每个微服务内部依据接口层鉴权、校验、渲染,核心业务功能,数据聚合、获取划分为应用层、领域层、数据获取层三个层级;在微服务内部建立领域模型。另外,还通过共享包共享领域模型的形式实现实时应用和异步服务的可插拔设计。本申请还公开了一种微服务架构处理系统、电子装置和计算机可读存储介质。由此,能够提供一种Go语言生态下基于Kratos的领域驱动设计微服务架构。动设计微服务架构。动设计微服务架构。

【技术实现步骤摘要】
微服务架构处理方法及系统


[0001]本申请涉及微服务
,尤其涉及一种微服务架构处理方法、系统、电子装置及计算机可读存储介质。

技术介绍

[0002]微服务是一种云原生架构方法,微服务架构可以使应用程序更易于扩展和更快地开发。目前,在进行各种业务系统的设计开发时,通常会使用微服务框架。但是,现有的很多开发方案缺少系统设计过的微服务框架和业务开发模式、缺少研发规范、面向过程编程,则可能造成许多问题。尤其当业务逐渐趋向成熟,需求增加,代码复杂度显著提升,则需要引入领域驱动设计(Domain

driven design,DDD)来完成业务架构设计。
[0003]DDD的核心目标是解决软件开发中的业务复杂度,通过架构分层、领域拆分和建模等手段实现关注点分离,提升代码自身的表达和约束能力,从而提升整体效率。但是,DDD目前的主要应用是基于面向对象编程语言的,例如Java语言,且有较完备的框架生态支持。而Go语言作为常见的面向函数编程,目前没有成熟且通用的DDD应用方式。

技术实现思路

[0004]本申请的主要目的在于提出一种微服务架构处理方法、系统、电子装置及计算机可读存储介质,旨在解决如何提供一种基于Go语言和DDD的微服务架构设计方案的问题。
[0005]为实现上述目的,本申请实施例提供了一种微服务架构处理方法,所述方法包括:
[0006]根据领域驱动设计梳理界限上下文并划分业务子领域;
[0007]在每个子领域内,根据同步逻辑、异步逻辑拆分成实时应用和异步任务应用两个微服务;
[0008]在每个微服务内部依据接口层鉴权、校验、渲染,核心业务功能,数据聚合、获取划分为应用层、领域层、数据获取层三个层级;
[0009]在微服务内部建立领域模型。
[0010]可选地,所述方法还包括:
[0011]通过共享包共享领域模型的形式实现实时应用和异步服务的可插拔设计。
[0012]可选地,所述在微服务内部建立领域模型包括:
[0013]根据接口功能设计应用层数据传输对象;
[0014]根据业务逻辑构建充血领域模型并抽象成员函数,实现实时应用和异步服务模型能力复用;
[0015]根据数据库表结构设计并实现持久层对象和数据获取层。
[0016]可选地,所述微服务内部的分层架构结合领域驱动设计的分层架构和六边形架构。
[0017]可选地,所述微服务的每个层级通过接口功能统一定义对其他层级暴露的公开接口,所述应用层调用定义在所述领域层的接口,所述数据获取层面向所述领域层设计接口,
实现六边形架构中输入端和输出端的可插拔设计。
[0018]可选地,在所述领域层和所述数据获取层定义的接口中,输入输出统一使用领域对象。
[0019]可选地,所述通过共享包共享领域模型的形式实现实时应用和异步服务的可插拔设计包括:
[0020]允许子领域内部的共享包共享领域对象和持久层对象,以及充血模型自带的成员函数。
[0021]此外,为实现上述目的,本申请实施例还提供一种微服务架构处理系统,所述系统包括:
[0022]梳理模块,用于根据领域驱动设计梳理界限上下文并划分业务子领域;
[0023]拆分模块,用于在每个子领域内,根据同步逻辑、异步逻辑拆分成实时应用和异步任务应用两个微服务;
[0024]分层模块,用于在每个微服务内部依据接口层鉴权、校验、渲染,核心业务功能,数据聚合、获取划分为应用层、领域层、数据获取层三个层级;
[0025]建模模块,用于在微服务内部建立领域模型。
[0026]为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务架构处理程序,所述微服务架构处理程序被所述处理器执行时实现如上述的微服务架构处理方法。
[0027]为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务架构处理程序,所述微服务架构处理程序被处理器执行时实现如上述的微服务架构处理方法。
[0028]本申请实施例提出的微服务架构处理方法、系统、电子装置及计算机可读存储介质,能够提供一种Go语言生态下基于Kratos的领域驱动设计微服务架构,弥补现有微服务架构技术中针对Go语言没有成熟且通用的DDD应用方式的不足。
附图说明
[0029]图1为本申请第一实施例提出的一种微服务架构处理方法的流程图;
[0030]图2为本申请中一种微服务的分层架构示意图;
[0031]图3为图2中步骤S206的细化流程示意图;
[0032]图4为本申请中一种领域模型对应的业务子领域代码分包结构图;
[0033]图5为本申请中一种微服务对应的代码分包结构图;
[0034]图6为本申请第二实施例提出的一种微服务架构处理方法的流程图;
[0035]图7为本申请中一种改造Common包后的六边形架构示意图;
[0036]图8为本申请第三实施例提出的一种电子装置的硬件架构示意图;
[0037]图9为本申请第四实施例提出的一种微服务架构处理系统的模块示意图;
[0038]图10为本申请第五实施例提出的一种微服务架构处理系统的模块示意图。
具体实施方式
[0039]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0040]需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
[0041]以下提供本申请涉及的术语解释:
[0042]微服务(或微服务架构):是面向服务架构(Service

Oriented Architecture,SOA)的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。
[0043]领域驱动设计(DDD):本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务架构处理方法,其特征在于,所述方法包括:根据领域驱动设计梳理界限上下文并划分业务子领域;在每个子领域内,根据同步逻辑、异步逻辑拆分成实时应用和异步任务应用两个微服务;在每个微服务内部依据接口层鉴权、校验、渲染,核心业务功能,数据聚合、获取划分为应用层、领域层、数据获取层三个层级;在微服务内部建立领域模型。2.根据权利要求1所述的微服务架构处理方法,其特征在于,所述方法还包括:通过共享包共享领域模型的形式实现实时应用和异步服务的可插拔设计。3.根据权利要求1或2所述的微服务架构处理方法,其特征在于,所述在微服务内部建立领域模型包括:根据接口功能设计应用层数据传输对象;根据业务逻辑构建充血领域模型并抽象成员函数,实现实时应用和异步服务模型能力复用;根据数据库表结构设计并实现持久层对象和数据获取层。4.根据权利要求1所述的微服务架构处理方法,其特征在于,所述微服务内部的分层架构结合领域驱动设计的分层架构和六边形架构。5.根据权利要求4所述的微服务架构处理方法,其特征在于,所述微服务的每个层级通过接口功能统一定义对其他层级暴露的公开接口,所述应用层调用定义在所述领域层的接口,所述数据获取层面向所述领域层设计接口,实现六边形架构中输入端和输出端的可插拔设计。6.根据权利要求1或5所述的微...

【专利技术属性】
技术研发人员:孙嘉岐
申请(专利权)人:上海哔哩哔哩科技有限公司
类型:发明
国别省市:

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

1