课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
事件驱动架构是程序员在学习软件架构技术的时候会经常用到的一个架构方法,下面我们就通过案例分析来了解一下,事件驱动架构概念解析。
事件驱动架构(EDA)是一个促进生产和消费事件的软件架构规范。
一个事件表示一个感兴趣的动作。通常,事件对应一个创建或修改某些实体状态的动作。例如,在电子商务应用程序中下订单是一个事件,分发一个已下单的产品也是一个事件。一个消费者提交一个对接收的产品的评论也是一个事件。
如果生产者和消费者都互不感知对方,那么两者该如何通信?
答案是通过术语"记录"进行粘合。事件通常被持久化到一个众所周知的位置,称为日志(有时也会用到术语"账簿")。日志是底层的,只能在后续消费者可以访问的地方附加生产者保存的事件数据结构。brokers(位于生产者和消费者之间的持久化中间件)负责操作日志。一旦产生了一个事件,任何人都可以消费该事件。
事件是在离散时间点发生的感兴趣的动作:可能从外部对其进行观察和描述。
事件持久化为记录:事件和记录尽管是相关的,但在技术上是不同的。一个事件表示事情的发生(如状态变更),本身是无形的。而一条记录是对该事件的精确描述。我们通常使用术语"事件"来指代其对应的记录。
生产者是通过将相应的记录发布到流中来检测事件的接收器。(发布一条记录则表示发生了一个事件)
流是持久化的有序的记录。它们通常由一个或多个基于磁盘的日志来进行持久化,当然,也可以使用数据库表、分布式共识协议,甚至是区块链式的分散账本来支持持久化。
Brokers负责对流的访问,方便读写操作,处理消费者状态以及在流上执行各种"内务"。例如,一个broker可能在记录溢出时对流的内容进行截取。
消费者读取流,然后对接收到的记录作出回应。消费者对事件的回应可能会伴随一些额外的操作。例如,一个消费者可能会在本地数据库中持久化一条表项(通过发布的"更新"事件来重构远端实体的状态)(即更新对远端实体的描述)。
消费者和生产者可能会重叠。例如,对事件的回应方,也可能产生一个或多个派生的事件。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。