繁体   English   中英

JMS:更新消息版本/防止某些消息进入队列

[英]JMS: updating message version / prevent certain message from being queued

我正在尝试使用.NET客户端创建基于ActiveMQ的基于消息的应用程序。

  • 客户端1:Web服务(生产者)
  • 客户端2:Windows服务(消费者)

我的问题是:是否可以防止客户端将某种类型或内容的消息排队?

我要执行此操作的原因是版本更新。

我认为会有一段时间,我需要扩展或更改消息类型。 我的计划是按以下顺序进行更新:

  1. 防止将旧版本的消息排队。
  2. 等待直到使用者处理完所有旧版本的消息。
  3. 更新生产者和使用者软件。

我希望在更新过程中Web服务仍然可用,以便向呼叫报告。 但是它不能将新消息排队。

当然,如果有更好的方法可以完全解决此问题,请告诉我。

通常,每个队列只有一种类型的有效负载是一个好主意。 一种简单的方法是对两个不同的消息版本使用两个不同的队列。 就像是:

mysystem.orders.1_0
mysystem.orders.1_1

版本应该是队列名称的最后一部分,因为它可以轻松使用通配符通配符用于ActiveMQ中的许多配置选项。

将不同的版本划分为不同的队列可以解决必须同时升级生产者和使用者的问题,并且还可以使您了解是否所有1_0消息都已耗尽。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM