我有几种微服务,其中许多具有集成事件。想象一下一个微服务M1,它需要订阅一个位于微服务M2中的事件。如何在不耦合M2和M1的情况下预订活动?是否有另一种订阅方式而不使用事件类型,而使用事件名称呢?
答案 0 :(得分:1)
虽然Rebus鼓励使用基于类型的主题,但其基础机制是基于简单的基于字符串的主题名称。
“原始主题”机制可通过bus.Advanced.Topics
使用,因此您可以
await bus.Advanced.Topics.Subscribe("whatever");
订阅whatever
主题,然后可以
await bus.Advanced.Topics.Publish("whatever", yourEvent);
将事件发布到该主题。
RabbitMQ Topics sample演示了如何完成此操作,甚至显示了RabbitMQ的基础主题通配符可以如何使用。
答案 1 :(得分:0)
有两种方法(取决于您的需要)可用于解决这种情况 首先将其传递给IHandleMessages并处理动态对象 第二是通过提供ISerilizable的实现 我们使用了第二个选项。