0

几天前我刚开始使用 Dapr,虽然我能够在 Dapr 中发布和订阅事件,但我这样做的方式是在控制器中的操作方法上使用Topic方法属性,例如......

在此处输入图像描述

虽然这可行,但我不希望将集成事件与服务 API 混合。这就是威风...

在此处输入图像描述

我知道主题名称很长,但这样我可以确保主题的唯一性。

我更喜欢将处理程序放置在任何控制器之外。像这样的东西。。

在此处输入图像描述

这甚至可能吗?

4

1 回答 1

1

我从 .Net Dapr 客户端路由示例中得出了一个解决方案。

对于每个事件,我添加一个类似于以下的MapPost端点

在此处输入图像描述

RequestDelegator接收给定主题的事件,它将从接口和主题属性解析处理程序类,然后调用它的句柄方法,从 Dapr 传递事件数据。

在此处输入图像描述

我的服务遵循 CQRS 和 EventSourcing 模式,因为此类集成事件很少与命令输入具有相同的形状。就我而言,事件通常比命令轻得多,主要由相关的 Id 组成。

于 2021-02-01T17:29:39.263 回答