说我正在使用一个频道,该频道的队列绑定到多个路由键。 例如,我正在接收诸如user.updated,order.created等事件。
当我收到这些事件时,处理它们的正确方法是什么? 在文档的示例(使用pubsub)中,使用了subscriptionmanager。该订阅管理器包含事件(作为字符串)及其处理程序。因此,当您获得一个事件时,您将寻找相应的处理程序并触发handle方法。我猜对于主题,可以使用类似的方法?
这是在企业应用程序中完成事件处理的方式吗?还有什么其他方法?我看到的一个问题是,当来自应用程序A的序列化事件在应用程序B处反序列化但由于字段或任何其他内容添加而不再匹配时。
为防止这种情况,可以创建一个通用的“事件”库来保存所有事件,但是我读过多篇文章,在MicroServices之间共享库是一种不好的做法。
GITHUB:
RabbitMq发布/订阅: https://github.com/dotnet-architecture/eShopOnContainers/blob/master/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs