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

时间:2009-06-15 22:18:34

标签: asynchronous versioning message-queue messaging

HTTP服务的客户端可以通过请求或发布具有特定内容类型的数据来指定他们理解的版本(和格式)。 HTTP协议定义了用于报告不理解内容类型的错误代码。

消息传递系统(例如JMS,MQ Series等)没有描述消息协议版本和内容格式的标准方法。

您如何为通过可靠的异步消息传递访问的服务实现版本控制?

一些可能性:

  • 发件人将版本指示为邮件属性
  • 队列或主题名称包括在该目的地接受的消息的协议版本
  • 版本位于消息的有效负载中

我确信还有其他方法。你是怎么做到的?你找到了什么优点和缺点?

1 个答案:

答案 0 :(得分:1)

指定有效负载之外的版本的一个优点是可以更容易地确定哪个位代码可以处理有效负载。它还允许您使用新版本从根本上更改有效内容。它还可以使消息路由更容易。

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