CN112558941A - 基于ddd的微服务请求处理方法、系统、设备及介质 - Google Patents
基于ddd的微服务请求处理方法、系统、设备及介质 Download PDFInfo
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000013500 data storage Methods 0.000 claims abstract description 7
- 230000002776 aggregation Effects 0.000 claims description 8
- 238000004220 aggregation Methods 0.000 claims description 8
- 230000010354 integration Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims 1
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution 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的微服务请求处理方法,包括:
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的微服务请求处理方法。
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)
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)
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 |
-
2020
- 2020-12-22 CN CN202011523727.XA patent/CN112558941A/zh active Pending
Patent Citations (5)
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)
Title |
---|
欧创新等: ""基于DDD的微服务设计和开发实战"", pages 1, Retrieved from the Internet <URL:https://www.infoq.cn/article/s_LFUIU6ZQODd030RbH9> * |
Cited By (3)
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 |