【发布时间】:2018-03-26 07:40:05
【问题描述】:
我正在阅读这篇名为 Variations in event-driven architecture 的文章,他们在其中演示了中介和代理拓扑。
根据文章,中介拓扑看起来有点像这样:
事件流从客户端发送一个事件到一个事件队列开始,该队列用于将事件传输到中介。 事件中介接收初始事件并通过向事件通道发送额外的异步事件来编排该事件以执行流程的每个步骤。 事件处理器,它监听事件通道,从偶数中介接收事件并执行特定的业务逻辑来处理事件 [...] 需要注意的是,事件中介不实际执行处理初始事件所需的业务逻辑,相反,它知道处理事件所需的步骤 [...] 事件通道可以是消息队列或消息主题。
所以,我正在研究这个图表,试图了解中介如何确定给定处理器何时完成对给定事件的处理,以便它可以协调流程的下一步。
文章说的不够清楚
对于每个初始事件步骤,事件调解器创建一个处理事件,发送该处理事件并等待相应事件处理器处理该处理事件。这个过程一直持续到初始事件中的所有步骤都已处理完毕。
现在,文章清楚地表明通信是异步的,事件消息将通过消息队列传播,但该图没有显示任何从事件处理器出来并返回到中介者的事件.
文章说调解器等待事件处理器完成,但不清楚这在架构方面应该如何发生。
它是异步的、基于队列的 RPC(例如Rabbit RPC),还是有另一个侦听器在某处等待异步响应?
对于如何从架构的角度实现这一点有什么想法吗?
【问题讨论】:
标签: events microservices event-driven orchestration event-driven-design