我有一个产品与.NET核心和使用MassTransit为RabbitMQ消息代理。
我这里有两个微服务,如下所示:
1.产品微服务
1.产品特性
在我的应用中创建产品时,会触发ProductCreated
事件,并在RabbitMQ中发布消息。
我的目标是在产品功能微服务中使用ProductCreated
模式。此外,我不想在产品功能微服务中重新创建ProductCreated
类。
我的解决方案是将产品微服务的域层放在NuGet上,然后将其添加到产品特性微服务中。如果ProductCreated
模式将被更改,我必须重新打包ProductCreated
模式,并再次将其放在NuGet上,最后在产品特性微服务中升级包版本。
有没有办法克服这个挑战?或者有没有更好的解决办法?
1条答案
按热度按时间pbossiut1#
创建一个带有消息协定的共享NuGet包是一个相当常见的解决方案,也是许多团队使用的解决方案。
只要消息协定是向后兼容的,以前的协定版本的使用者就不会有任何问题。这需要谨慎和规范,但并不困难。