大家还感兴趣的 >>>
BOB综合体育APP下载
BOB综合体育APP下载_ 微服务架构谈(4):领域事件
本文摘要:

在领域建模时我们发现除了下令和操作等业务行为以外另有一类很是重要的事件。

在领域建模时我们发现除了下令和操作等业务行为以外另有一类很是重要的事件。这类事件发生后通常会触发进一步的业务操作在DDD中这类事件被称为领域事件(Domain Event)。

点击二维码购置↓

1 领域事件

点击“阅读原文”相识更多数字化转型好书!

跨微服务的领域事件可以在差别限界上下文或领域模型之间实现业务协作其主要目的是实现微服务解耦推动业务流程或者数据在差别子域或微服务之间流转。

同时也可以减轻微服务之间同步服务会见的压力制止当某个关键微服务无法提供服务时泛起雪崩效应。

《中台架构与实现:基于DDD 和微服务》

如果不接纳事件总线的最终数据一致性机制其实你也可以接纳事务机制保证数据强一致性。好比在应用服务中增加事务控制在对多个聚合的领域服务举行组合和编排时通过事务机制来确保多个聚合在提交数据时实现数据强一致性。

这种方式一般应用于实时性和数据一致性要求高的业务场景但接纳事务机制可能会泛起系统性能损耗。

我们先一起回首一下第8章的内容聚合有一个重要设计原则:“在界限之外使用最终一致性。”如果在一次事务提交中修改的数据超出了一个聚合的界限简朴点说就是一笔生意业务如果同时涉及多个聚合的数据更新那么就可以接纳数据最终一致性。

包罗大量设计案例和代码实现手把手教你完成中台和微服务的协同设计。

BOB综合体育APP下载

1.1 微服务内的领域事件

这是因为聚合是微服务内最小的业务功效单元。为了保证聚合内数据更新时切合聚合内牢固的业务规则在一次事务提交时通常会将聚合内所有变换的工具数据作为整体通过聚合领域服务或聚合根方法一次通过仓储完成数据持久化操作。

如果在一次生意业务中需要同时更新多个聚合数据那么每一个聚合就是一个独立的数据提交单元我们需要确保多个聚合数据都能在这个生意业务中乐成提交并更新以保证差别聚合数据的一致性。而基于事件总线的异步化机制就可以保证微服务内聚合之间数据提交时的最终一致性。

那到底什么是领域事件?领域事件驱动设计的技术实现机制是怎样的?我们这一章将重点解说这两个问题。

综上通过领域事件驱动的异步化机制可以推动业务流程和数据在各个差别业务领域和微服务之间的流转实现领域模型和微服务的解耦减轻微服务之间服务挪用的压力提升用户体验。

在用户旅程或者场景分析时我们需要捕捉业务人员、需求分析人员以及领域专家口中的这些具有前后行动关系的关键词好比:“如果发生⋯⋯则⋯⋯”“当做完⋯⋯时请通知⋯⋯”“发生⋯⋯时则⋯⋯”等。在这些业务场景中如果发生某种事件后会触发进一步的业务操作那么这个事件很可能就是领域事件。

1.2 微服务之间的领域事件

3)投保微服务在投保单转保单完成后公布第三个领域事件:保单已生成。将保单事件数据公布到消息中间件。

保单微服务吸收到保单数据后完成保单数据生存操作。保单已生成领域事件竣事。

领域事件是领域模型很是重要的一部门用于表现领域中发生的事件。一个领域事件往往会导致进一步的业务操作它在实现领域模型解耦的同时另有助于形成完整的业务操作闭环。

所以应只管淘汰微服务之间的同步服务挪用方式优先接纳基于消息中间件的最终一致性设计。

2 领域事件案例

4)保单微服务完成保单数据生存后后面还会发生一系列的领域事件以并发的方式将保单事件数据通过消息中间件划分发送到佣金、收付和再保等微服务一直到财政完成保单后续所有业务流程。这里就不详细展开了。

举例来说领域事件可以是业务流程的一个步骤好比投保业务缴费完成后触发投保单转保单的行动;也可以是定时批处置惩罚历程中发生的事件好比批处置惩罚生成季缴保费通知单触发缴费邮件通知操作;还可以是一个事件发生后触发的后续行动好比密码一连输错三次触发锁定账户的行动。

再回到详细的业务场景我们发现有的领域事件发生在微服务内的聚合之间有的发生在微服务之间另有两者皆有的场景。一般来说跨微服务的领域事件会相对较多。在微服务设计时差别场景下的领域事件的处置惩罚方式会差别。

微服务之间的领域事件也可以接纳同步服务挪用的强一致性设计实现实时的数据和服务会见。其毛病就是需要引入漫衍式事务机制以确保微服务之间的数据强一致性。但漫衍式事务机制会影响系统性能同时增加微服务之间的耦合。

在微服务内发生领域事件如果同时更新多个聚合数据时你需要确保多个聚合数据。


本文关键词:BOB综合体育APP下载

本文来源:BOB综合体育APP下载-www.xctqdl.com

电 话
地 图
分 享
咨 询