【发布时间】:2018-09-13 08:55:54
【问题描述】:
我正在为每个消费者实例寻找一种方法来接收通过 MassTransit 发布到 RabbitMQ 的消息。场景是,我们有多个微服务需要在通知时使缓存无效。 Pub-Sub 在这种情况下不起作用,因为每个服务实例将有 5 个与其相同代码相同类型的消费者,因此只有一个消费者会在传统 PubSub 中接收消息。
消息观察可能是一种选择,但这意味着消息永远不会被消费并永远在公共汽车上徘徊。
任何人都可以建议在 MassTransit 环境中使用的模式吗?
提前致谢。
【问题讨论】:
-
如果你有竞争的消费者,你就是横向扩展。在这种情况下,拥有本地缓存是个坏主意。您不仅要处理所描述的奇异用例,而且还要独立填充每个缓存。如果您想水平扩展 - 也可以考虑使用一些分布式缓存。
-
@AlexeyZimarev 感谢您的来信。我们有一个非常复杂的分层模型,它保存在本地的易失性内存中,不能很好地序列化,因此我们需要使用进程内存储来提高速度。当此模型更改时 - 每周一次,所有实例都需要收到通知,以便从存储中补充其本地副本。
标签: masstransit