使用MassTransit, . net Core和RabbitMQ的设计挑战



我有一个。net Core产品,使用MassTransit作为RabbitMQ消息代理。

我有两个微服务,如下所示:

  1. 产品Microservice

  2. 产品特性

当产品在我的应用程序中创建时,ProductCreated事件被触发,消息在RabbitMQ中发布。

我的目标是在产品特性微服务中使用ProductCreated模式。此外,我不想在产品功能微服务中重新创建ProductCreated类。

我的解决方案是将产品微服务的领域层放在NuGet上,然后将其添加到产品功能微服务中。这里有一个问题:如果ProductCreated模式将被更改,我必须重新打包ProductCreated模式并再次将其放在NuGet上,最后在产品功能微服务中升级包版本。

有办法克服这个挑战吗?或者有更好的解决方案吗?

创建带有消息契约的共享NuGet包是一种相当常见的解决方案,也是许多团队使用的一种解决方案。

只要消息契约是向后兼容的,以前的契约版本的消费者不应该有任何问题。这需要细心和自律,但并不困难。

相关内容

  • 没有找到相关文章

最新更新