分布式系统中解耦的模式:显式化公共化你的领域事件 - mathiasverraes

栏目: 服务器 · 发布时间: 5年前

内容简介:将一小部分事件标记为公共事件,默认情况下保持其他事件为私有。(有界上下文内部时私有,有界上下文或微服务之间发送消息事件是公有,分成两个不同的消息主题通道)领域事件 不仅可用于与其他有界上下文进行通信,还可用于组织和解耦有界上下文中的代码,在CQRS / Eventsourcing架构中甚至是组织代码的主要方式。

将一小部分事件标记为公共事件,默认情况下保持其他事件为私有。(有界上下文内部时私有,有界上下文或微服务之间发送消息事件是公有,分成两个不同的消息主题通道)

问题

领域事件 不仅可用于与其他有界上下文进行通信,还可用于组织和解耦有界上下文中的代码,在CQRS / Eventsourcing架构中甚至是组织代码的主要方式。

使用单一总线发布所有这些事件非常方便,有效地使它们全部公开。当其中一些事件包含敏感数据时,这是一个问题。更重要的是, 外部API与有界上下文的内部结构紧密耦合。更改内部会强制进行API更改。

解决

在有界上下文内部和外部设置单独的消息传递通道:默认情况下将所有事件保持为私有;对于要公开的事件使用显式@Public注释,标记接口或用isPublic():bool方法指示。

发送事件时,事件发布机制必须知道读取注释并仅在私有信道上发送事件,或者在私有和公共信道上发送事件。

讨论

一般来说,我的感觉是,仔细选择领域事件以反映业务领域,使用泛在的统一语言,并以正确的粒度时设计事件时,很少有问题发生。然后,这些事件在开发过程中会很快变得稳定,很少需要改变。当t域中的有重要改变时,事件可能需要更改,但在这些情况下,无论如何都需要API更改。

也就是说,它是软件设计中一种普遍有用的启发式方法,可以使所有内容尽可能地保持封闭状态,并且仅在有好的情况下打开它。


以上所述就是小编给大家介绍的《分布式系统中解耦的模式:显式化公共化你的领域事件 - mathiasverraes》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

51单片机应用从零开始

51单片机应用从零开始

杨欣、王玉凤、刘湘黔 / 清华大学 / 2008-1 / 39.80元

《51单片机应用与实践丛书•51单片机应用从零开始》在分析初学者认知规律的基础上,结合国内重点大学一线教师的教学经验以及借鉴国外经典教材的写作手法,对51单片机的应用基础知识进行系统而翔实的介绍。读者学习每一章之后,"实例点拨"环节除了可以巩固所学的内容外,还开辟了单片机应用的视野;再加上"器件介绍"环节,又充实了对单片机从基础到应用所需要的知识。8051单片机不仅是国内用得最多的单片机之一,同时......一起来看看 《51单片机应用从零开始》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具