CN112558941A - 基于ddd的微服务请求处理方法、系统、设备及介质 - Google Patents

基于ddd的微服务请求处理方法、系统、设备及介质 Download PDF

Info

Publication number
CN112558941A
CN112558941A CN202011523727.XA CN202011523727A CN112558941A CN 112558941 A CN112558941 A CN 112558941A CN 202011523727 A CN202011523727 A CN 202011523727A CN 112558941 A CN112558941 A CN 112558941A
Authority
CN
China
Prior art keywords
service
layer
micro
data
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011523727.XA
Other languages
English (en)
Inventor
李云星
蒋秋明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Shangshi Longchuang Intelligent Technology Co Ltd
Original Assignee
Shanghai Shangshi Longchuang Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Shangshi Longchuang Intelligent Technology Co Ltd filed Critical Shanghai Shangshi Longchuang Intelligent Technology Co Ltd
Priority to CN202011523727.XA priority Critical patent/CN112558941A/zh
Publication of CN112558941A publication Critical patent/CN112558941A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于DDD的微服务请求处理方法、系统、设备及介质,方法包括对微服务进行划界,建立微服务领域模型,微服务领域模型包括展现层、应用层、领域层和基础设施层;展现层获取微服务请求;将微服务请求发送至应用层,获取业务处理数据;将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据;将操作数据送入基础设施层进行业务操作和操作数据储存,并更新展现层的用户界面数据。与现有技术相比,本发明将微服务具体划界,建立微服务领域模型,划分多个较小的模型层级,便于开发和调试,避免由于微服务划界不明确而导致的效率低下和微服务处理不准确问题,能够提高对微服务请求的处理效率和处理准确性。

Description

基于DDD的微服务请求处理方法、系统、设备及介质
技术领域
本发明涉及一种微服务请求处理领域,尤其是涉及基于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的微服务请求处理方法。
上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。

Claims (10)

1.一种基于DDD的微服务请求处理方法,其特征在于,包括:
S1:对微服务进行划界,建立微服务领域模型,所述的微服务领域模型包括展现层、应用层、领域层和基础设施层;
S2:所述的展现层获取微服务请求;
S3:所述的展现层将微服务请求发送至应用层,获取业务处理数据;
S4:所述的应用层将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据;
S5:所述的领域层将操作数据送入基础设施层进行业务操作和操作数据储存,并通过应用层将操作数据送入展现层,更新展现层的用户界面数据。
2.根据权利要求1所述的一种基于DDD的微服务请求处理方法,其特征在于,所述的S4的具体步骤包括:
S41:将业务处理数据发送至领域层;
S42:领域层对业务处理数据进行业务逻辑处理,获取操作原始数据;
S43:根据操作原始数据进行领域聚合,获取操作数据;
S44:对操作数据进行反序列化处理,进入步骤S5。
3.根据权利要求1所述的一种基于DDD的微服务请求处理方法,其特征在于,所述的S1中根据微服务的粒度、分层、边界划分、依赖关系和集成关系进行领域模型的划界。
4.根据权利要求1所述的一种基于DDD的微服务请求处理方法,其特征在于,所述的基础设施层包括数据库、API网关和缓存,所述的缓存用于暂存来自领域层的操作数据,所述的数据库用于储存操作数据,所述的API网关用于与发出微服务请求的客户端进行通讯。
5.一种基于DDD的微服务请求处理系统,其特征在于,包括微服务划界模块,所述的微服务划界模块对微服务进行划界,建立微服务领域模型,所述的微服务领域模型包括展现层、应用层、领域层和基础设施层,
所述的展现层获取微服务请求,
所述的展现层将微服务请求发送至应用层,获取业务处理数据,
所述的应用层将业务处理数据发送至领域层,领域层对业务处理数据进行业务逻辑处理,获取操作数据,
所述的领域层将操作数据送入基础设施层进行业务操作和操作数据储存,并通过应用层将操作数据送入展现层,更新展现层的用户界面数据。
6.根据权利要求5所述的一种基于DDD的微服务请求处理系统,其特征在于,所述的领域层根据业务处理数据获取操作数据的具体步骤包括:
将业务处理数据发送至领域层;
领域层对业务处理数据进行业务逻辑处理,获取操作原始数据;
根据操作原始数据进行领域聚合,获取操作数据;
对操作数据进行反序列化处理。
7.根据权利要求5所述的一种基于DDD的微服务请求处理系统,其特征在于,所述的微服务划界模块根据微服务的粒度、分层、边界划分、依赖关系和集成关系进行领域模型的划界。
8.根据权利要求5所述的一种基于DDD的微服务请求处理系统,其特征在于,所述的基础设施层包括数据库、API网关和缓存,所述的缓存用于暂存来自领域层的操作数据,所述的数据库用于储存操作数据,所述的API网关用于与发出微服务请求的客户端进行通讯。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的一种基于DDD的微服务请求处理方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至4中任一项所述的一种基于DDD的微服务请求处理方法。
CN202011523727.XA 2020-12-22 2020-12-22 基于ddd的微服务请求处理方法、系统、设备及介质 Pending CN112558941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011523727.XA CN112558941A (zh) 2020-12-22 2020-12-22 基于ddd的微服务请求处理方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011523727.XA CN112558941A (zh) 2020-12-22 2020-12-22 基于ddd的微服务请求处理方法、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN112558941A true CN112558941A (zh) 2021-03-26

Family

ID=75032091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011523727.XA Pending CN112558941A (zh) 2020-12-22 2020-12-22 基于ddd的微服务请求处理方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN112558941A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658020A (zh) * 2022-11-07 2023-01-31 苏州数设科技有限公司 领域模型的构建方法、装置、存储介质及电子设备
CN117311674A (zh) * 2023-10-10 2023-12-29 中建三局信息科技有限公司 一种基于领域驱动设计的商砼业务平台的搭建和开发方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979635A (zh) * 2017-10-24 2018-05-01 广东康美通信息服务有限公司 基于微服务的系统、方法及存储介质
CN108415944A (zh) * 2018-01-30 2018-08-17 长安大学 一种交通环境下基于微服务的实时计算系统及其实现方法
CN109358847A (zh) * 2018-09-26 2019-02-19 中国海洋石油集团有限公司 一种业务管理平台
WO2019137338A1 (zh) * 2018-01-09 2019-07-18 比亚迪股份有限公司 轨道交通信息系统云平台
US20190354352A1 (en) * 2018-05-18 2019-11-21 At&T Intellectual Property I, L.P. Facilitation of microservice user interface framework

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979635A (zh) * 2017-10-24 2018-05-01 广东康美通信息服务有限公司 基于微服务的系统、方法及存储介质
WO2019137338A1 (zh) * 2018-01-09 2019-07-18 比亚迪股份有限公司 轨道交通信息系统云平台
CN108415944A (zh) * 2018-01-30 2018-08-17 长安大学 一种交通环境下基于微服务的实时计算系统及其实现方法
US20190354352A1 (en) * 2018-05-18 2019-11-21 At&T Intellectual Property I, L.P. Facilitation of microservice user interface framework
CN109358847A (zh) * 2018-09-26 2019-02-19 中国海洋石油集团有限公司 一种业务管理平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
欧创新等: ""基于DDD的微服务设计和开发实战"", pages 1, Retrieved from the Internet <URL:https://www.infoq.cn/article/s_LFUIU6ZQODd030RbH9> *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658020A (zh) * 2022-11-07 2023-01-31 苏州数设科技有限公司 领域模型的构建方法、装置、存储介质及电子设备
CN115658020B (zh) * 2022-11-07 2024-02-20 苏州数设科技有限公司 领域模型的构建方法、装置、存储介质及电子设备
CN117311674A (zh) * 2023-10-10 2023-12-29 中建三局信息科技有限公司 一种基于领域驱动设计的商砼业务平台的搭建和开发方法

Similar Documents

Publication Publication Date Title
CN105610987B (zh) 管理服务器集群的方法、应用及系统
CN109002362A (zh) 一种服务方法、装置、系统以及电子设备
WO2017041657A1 (zh) 一种应用接口管理方法和装置
CN109947422B (zh) 一种基于领域驱动设计的业务实体实现方法及系统
US11556348B2 (en) Bootstrapping profile-guided compilation and verification
CN109741229B (zh) 应用于轨道交通的管理系统和方法
US10379914B2 (en) System and method for achieving specific behaviors by intercepting file access calls in a mainframe rehosting platform
CN109739624B (zh) 分布式事务处理方法、装置、电子设备及计算机可读介质
US10089084B2 (en) System and method for reusing JavaScript code available in a SOA middleware environment from a process defined by a process execution language
CN112558941A (zh) 基于ddd的微服务请求处理方法、系统、设备及介质
CN107871050B (zh) 面向数据和面向对象的混合建模方法及存储介质
CN113010561B (zh) 基于超级账本的数据获取方法、装置、计算机系统
CN112363845A (zh) 系统集成中台的数据同步方法及集成中台系统
US10534640B2 (en) System and method for providing a native job control language execution engine in a rehosting platform
CN112685020A (zh) 动态创建服务接口的方法、装置、电子设备及存储介质
CN114327383A (zh) 基于soa架构中间件的服务配置系统、方法及可读存储介质
Izukura et al. Applying a model-based approach to IT systems development using SysML extension
US10223143B2 (en) System and method for supporting javascript as an expression language in a process defined by a process execution language for execution in a SOA middleware environment
CN113835842A (zh) 同时支持单体架构和微服务架构的服务设计方法和系统
CN114610598A (zh) 测试方法、装置、电子设备及计算机可读存储介质
CN104423932A (zh) Javascript中调用二进制组件的方法
Bračevac et al. CPL: A core language for cloud computing
US10268496B2 (en) System and method for supporting object notation variables in a process defined by a process execution language for execution in a SOA middleware environment
CN114115884A (zh) 一种编程服务的管理方法以及相关装置
CN109816546A (zh) 一种基于j2ee架构的农场农事管理平台及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination