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

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

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

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

问题

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

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

解决

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

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

讨论

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

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


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

查看所有标签

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

微信民族志、自媒体时代的知识生产与文化实践

微信民族志、自媒体时代的知识生产与文化实践

赵旭东 / 中国社会科学出版社 / 2017-9 / 98.00元

进入二十一世纪以来,随着网络技术的发展,自媒体的悄然登场深度影响着我们的日常生活。中国社会中自媒体通讯方式的普及以及随之而有的一种文化书写的新形式——微信民族志的出现使原有文化秩序中时空意义发生转变的同时,也在重新塑造着以研究异文化为己任的人类学学科自身的成长、转型与发展。在此种情境之下,由中国人民大学人类学研究所、中国人民大学国家发展与战略研究院、中国人民大学社会学理论与方法研究中心、《探索与争......一起来看看 《微信民族志、自媒体时代的知识生产与文化实践》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具