通过可靠的异步消息传递实现服务版本控制的权衡?

5
HTTP服务的客户端可以通过请求或发布特定内容类型的数据来指定他们理解的版本(和格式)。HTTP协议定义了报告内容类型不可理解的错误代码。
消息系统(例如JMS、MQ Series等)没有一种标准的方法来描述消息协议版本和内容格式。
您是如何为可靠的异步消息访问的服务实现版本控制的呢?
一些可能性包括:
- 发送方将版本表示为消息属性 - 队列或主题名称包括在该目的地接受的消息的协议版本 - 版本在消息的有效负载中
我相信还有其他的方法。您是如何实现它的?您发现了哪些优缺点?
1个回答

1

在负载之外指定版本的一个优点是,可以更容易地确定哪个代码位可以处理负载。它还允许您使用新版本彻底更改负载内容。这也可以使消息路由更加容易。

总的来说,我认为这里没有正确或错误的答案,您提供的所有选项都可以使用,并且您喜欢的消息总线可能有一个“最佳实践”应该遵循。


我同意没有正确或错误的答案。也不存在所谓的“最佳实践”。这就是为什么我要求具体经验的原因。那么,你使用了什么机制?在什么情况下?什么有效?遇到了什么问题? - Nat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接