我有一个产品.NET内核,并为RabbitMQ消息代理使用MassTransit.

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

  1. 产品微服务

  2. 产品特征

在我的应用程序中创建产品时,将触发ProductCreated个事件,并在RabbitMQ中发布消息.

我的目标是在产品功能微服务中使用ProductCreated个模式.此外,我不想在Product features microservice中重新创建ProductCreated类.

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

有没有办法克服这个挑战?还是有更好的解决方案?

推荐答案

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

只要消息契约向后兼容,以前契约版本的使用者就不应该有任何问题.这需要谨慎和自律,但并不困难.

.net相关问答推荐

在PowerShell中,XML子对象和属性是对象属性.它怎麽工作?

带有ASP.NET核心的Angular 项目模板.API试验

如何通过在后台预加载流项来优化流迭代的性能?

有没有更好的方法使用 Pusher Channels 的批事件发布消息?

使用 PostAsJsonAsync C# 时出现错误请求

判断内部异常的最佳方法?

如何在 ASP.NET Core MVC 中读取操作方法的属性?

xunit Assert.ThrowsAsync() 不能正常工作?

如何在 MSBuild 脚本中获取当前目录?

抛出 ArgumentNullException

返回 IQueryable 或不返回 IQueryable

OpenCV的.Net(dotNet)包装器?

如何判断一个类型是否是简单类型?即持有一个单一的价值

如何在 WPF 中创建/制作圆角按钮?

.net:System.Web.Mail 与 System.Net.Mail

如何将 NuGet 与 Visual C# Express 一起使用?

mscorlib 代表什么?

为什么发布和调试模式下的代码行为不同?

判断对象列表是否包含具有特定值的属性

如何重新启动 WPF 应用程序?