【问题标题】:Trade-offs implementing versioning of services accessed by reliable async messaging?实现可靠异步消息访问的服务版本控制的权衡?
【发布时间】:2010-11-03 04:16:59
【问题描述】:

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

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

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

一些可能性:

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

我相信还有其他方法。你是怎么做到的?您发现了哪些优点和缺点?

【问题讨论】:

    标签: asynchronous versioning message-queue messaging


    【解决方案1】:

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

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

    【讨论】:

    • 我同意没有正确或错误的答案。也没有“最佳实践”之类的东西。这就是为什么我要求具体的经验。那么,使用了什么机制呢?在什么情况下?什么效果好?你遇到了什么问题?
    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2014-11-09
    • 2018-04-14
    相关资源
    最近更新 更多