公开/公告号CN112558941A
专利类型发明专利
公开/公告日2021-03-26
原文格式PDF
申请/专利权人 上海上实龙创智能科技股份有限公司;
申请/专利号CN202011523727.X
申请日2020-12-22
分类号G06F8/20(20180101);G06F9/451(20180101);
代理机构31225 上海科盛知识产权代理有限公司;
代理人丁云
地址 200436 上海市静安区万荣路1198号5层
入库时间 2023-06-19 10:24:22
技术领域
本发明涉及一种微服务请求处理领域,尤其是涉及基于DDD的微服务请求处理方法、系统、设备及介质。
背景技术
微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统,提供更好的软件伸缩性以及提高组织的敏捷性,然而微服务架构没有很好的理论支撑如何合理的划分服务边界,目前在微服务实践过程中,微服务的分包划界难以统一,对于微服务的开发团队中,不同团队对于如何进行服务划分不能难以统一,甚至同一团队的不同开发人员的分包原则和方式也大不相同,非常不利于产品代码的开发和维护。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于DDD的微服务请求处理方法、系统、设备及介质。
本发明的目的可以通过以下技术方案来实现:
一种基于DDD的微服务请求处理方法,包括:
S1:对微服务进行划界,建立微服务领域模型,所述的微服务领域模型包括展现层、应用层、领域层和基础设施层;
S2:所述的展现层获取微服务请求;
S3:所述的展现层将微服务请求发送至应用层,获取业务处理数据;
S4:所述的应用层将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据;
S5:所述的领域层将操作数据送入基础设施层进行业务操作和操作数据储存,并通过应用层将操作数据送入展现层,更新展现层的用户界面数据。
本发明中,DDD是指Domain-Driven Design,即领域驱动设计。
优选地,所述的S4的具体步骤包括:
S41:将业务处理数据发送至领域层;
S42:领域层对业务处理数据进行业务逻辑处理,获取操作原始数据;
S43:根据操作原始数据进行领域聚合,获取操作数据;
S44:对操作数据进行反序列化处理,进入步骤S5。
优选地,所述的S1中根据微服务的粒度、分层、边界划分、依赖关系和集成关系进行领域模型的划界。
优选地,所述的基础设施层包括数据库、API网关和缓存,所述的缓存用于暂存来自领域层的操作数据,所述的数据库用于储存操作数据,所述的API网关用于与发出微服务请求的客户端进行通讯。
一种基于DDD的微服务请求处理系统,包括微服务划界模块,所述的微服务划界模块对微服务进行划界,建立微服务领域模型,所述的微服务领域模型包括展现层、应用层、领域层和基础设施层,
所述的展现层获取微服务请求,
所述的展现层将微服务请求发送至应用层,获取业务处理数据,
所述的应用层将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据,
所述的领域层将操作数据送入基础设施层进行业务操作和操作数据储存,并通过应用层将操作数据送入展现层,更新展现层的用户界面数据。
优选地,所述的领域层根据业务处理数据获取操作数据的具体步骤包括:
将业务处理数据发送至领域层;
领域层对业务处理数据进行业务逻辑处理,获取操作原始数据;
根据操作原始数据进行领域聚合,获取操作数据;
对操作数据进行反序列化处理。
优选地,所述的微服务划界模块根据微服务的粒度、分层、边界划分、依赖关系和集成关系进行领域模型的划界。
优选地,所述的基础设施层包括数据库、API网关和缓存,所述的缓存用于暂存来自领域层的操作数据,所述的数据库用于储存操作数据,所述的API网关用于与发出微服务请求的客户端进行通讯。
一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种基于DDD的微服务请求处理方法。
一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述的一种基于DDD的微服务请求处理方法。
与现有技术相比,本发明具有如下优点:
(1)本发明将微服务具体划界,建立微服务领域模型,划分多个相对较小的模型层级,便于开发和调试,有效避免由于微服务划界不明确而导致的效率低下和微服务处理不准确问题,能够有效提高对微服务请求的处理效率和处理准确性;
(2)基于本发明的微服务请求处理方法和系统,能够针对微服务每个层级的特征,采用不同的技术实现,比如部分微服务使用C#实现,部分使用Java或者Python等,提高微服务请求处理的灵活性和适应性,得微服务在容错隔离方面也有很好的表现;
(3)本发明的微服务领域模型个层级相对独立,每个服务都可以单独开发单独部署,有效提高本发明对微服务请求的处理和响应效率。
附图说明
图1为本发明的流程图;
图2为本发明的微服务领域模型结构图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。
实施例
一种基于DDD的微服务请求处理方法,如图1、2所示,包括:
S1:对微服务进行划界,建立微服务领域模型,所述的微服务领域模型包括展现层、应用层、领域层和基础设施层。S1中根据微服务的粒度、分层、边界划分、依赖关系和集成关系进行领域模型的划界。
S2:所述的展现层获取微服务请求。
S3:所述的展现层将微服务请求发送至应用层,获取业务处理数据。
S4:所述的应用层将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据。
本发明中DDD是指Domain-Driven Design,即领域驱动设计。
S4的具体步骤包括:
S41:将业务处理数据发送至领域层;
S42:领域层对业务处理数据进行业务逻辑处理,获取操作原始数据;
S43:根据操作原始数据进行领域聚合,获取操作数据;
S44:对操作数据进行反序列化处理,进入步骤S5。
S5:所述的领域层将操作数据送入基础设施层进行业务操作和操作数据储存,并通过应用层将操作数据送入展现层,更新展现层的用户界面数据。
本实施例中,所述的基础设施层包括数据库、API网关和缓存,所述的缓存用于暂存来自领域层的操作数据,所述的数据库用于储存操作数据,所述的API网关用于与发出微服务请求的客户端进行通讯。
一种基于DDD的微服务请求处理系统,包括微服务划界模块,所述的微服务划界模块对微服务进行划界,建立微服务领域模型,所述的微服务领域模型包括展现层、应用层、领域层和基础设施层。微服务划界模块根据微服务的粒度、分层、边界划分、依赖关系和集成关系进行领域模型的划界。
所述的展现层获取微服务请求,所述的展现层将微服务请求发送至应用层,获取业务处理数据,所述的应用层将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据,所述的领域层将操作数据送入基础设施层进行业务操作和操作数据储存,并通过应用层将操作数据送入展现层,更新展现层的用户界面数据。
领域层根据业务处理数据获取操作数据的具体步骤包括:
将业务处理数据发送至领域层;
领域层对业务处理数据进行业务逻辑处理,获取操作原始数据;
根据操作原始数据进行领域聚合,获取操作数据;
对操作数据进行反序列化处理。
本发明的方法和系统中,领域建模是通过对业务和问题域进行分析,建立领域模型,向上通过限界上下文指导微服务边界设计,向下通过聚合指导实体的对象设计。微服务拆分和设计是结合业务限界上下文与技术因素,对服务的粒度、分层、边界划分、依赖关系和集成关系进行梳理,完成微服务拆分和设计。
本实施例中,展现层包括用户界面、Web服务等展现形式。领域层将实体与值对象进行领域聚合处理。
具体地,本实施例中,1、应用层是很瘦的一层,其服务主要用来表述应用和用户行为。它主要负责服务的组合、编排和转发,负责处理业务用例的执行顺序以及结果的拼装,拼装完领域服务后以粗粒度的服务通过API网关向前台应用发布。通过这样一种方式,隐藏了领域层的复杂性及其内部实现机制。应用层除了定义应用服务之外,在这层还可以进行安全认证,权限校验,持久化事务控制或向其他系统发送基于事件的消息通知。
2、领域层是较“胖”的一层,它实现了全部业务逻辑并且通过各种校验手段保证业务正确性。业务逻辑包括:业务流程、业务策略、业务规则、完整性约束等。当领域中的某个操作过程或转换过程不是实体或值对象的职责时,便将该操作放在一个单独的服务接口中,这就是领域服务,领域服务是无状态的。
3、基础设施层服务位于基础设施层,根据依赖倒置原则,封装基础资源服务,实现资源层与应用层和领域层的调用依赖反转,为应用层和领域层提供基础资源服务(如数据库、缓存等基础资源),实现各层的解耦,降低外部资源的变化对核心业务逻辑的影响。微服务设计应综合考虑业务职责单一、敏态与稳态业务分离、非功能性需求(如弹性伸缩要求、安全性等要求)、团队组织和沟通效率、软件包大小以及技术异构等因素。
本实施例中,基础设施层包括数据库、API网关和缓存,所述的缓存用于暂存来自领域层的操作数据,所述的数据库用于储存操作数据,所述的API网关用于与发出微服务请求的客户端进行通讯。本实施例中,基础设施层还包括用于通讯的总线。
一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种基于DDD的微服务请求处理方法。
一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述的一种基于DDD的微服务请求处理方法。
上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。
机译: WEB服务系统,请求者,用于SOAP消息的中间处理设备,用于请求者的请求的SOAP消息处理方法,用于请求者的响应的SOAP消息处理方法,用于中间处理设备的SOAP请求的SOAP消息处理方法消息,用于处理设备的SOAP消息处理方法的SOAP消息响应的中间件和程序
机译: 连接服务提供系统,连接服务提供方法,连接服务请求设备,连接服务请求方法,记录连接服务请求处理程序中的介质,连接服务代理请求设备,连接服务代理请求方法和介质中的介质记录了处理程序
机译: 数据处理设备,数据处理设备的数据处理方法,数据处理程序,数据处理请求设备,数据处理请求设备的数据处理请求方法,数据处理请求程序,数据处理系统和数据处理方法