公交信息一体化合同microservices方法



我想使用MassTransit(第一次)创建一个简单的微服务项目。我关心的是消息契约。我不是微服务中共享项目的粉丝,但MassTransit迫使我将消息放在一个共享项目中,或者在单独的项目中创建主题,但命名空间必须相同。你如何处理这个要求?您是创建共享项目还是创建消息(例如,没有名称空间)?

两种方法都可以,只要你觉得最舒服就行。

如果你创建了一个共享的NuGet,并确保你的契约是进化以保持向后兼容性的,那么项目就不需要升级NuGet。只要契约的修改是可选/可空的,并且消费者可以适当地处理丢失的属性,就不会有任何问题。

每个项目中的独立合同本质上必须以相同的方式管理,只是现在您必须更新多个项目以使用任何额外的属性。也许这不是什么大事,但剪切粘贴并不有趣。

在我看来,对命名空间的关注是荒谬的。它是一个字符串,在文件中。我不明白为什么人们会为此而烦恼,但是如果MassTransit只使用类名作为消息类型标识符,那将是一场混乱。

相关内容

最新更新