问题描述
我正在创建一个负载测试,我尝试通过 ActiveMQ 主题将三种类型的 JSON 消息发送到服务器。发送第一条消息后,我得到 3 个响应,发送第二个 - 根据业务逻辑得到 2 个响应。 按顺序进行一次迭代:
- 发布消息1
- 由于成功处理消息1而消耗 3 个响应
- 发布消息2
- 成功处理 message2 的结果是消耗 2 个响应
- 等等
我需要开始 50 次并行迭代,不要混淆来自不同迭代的消息。我该怎么做? 我尝试过 JMS 选择器,但这个选择器只能按标题过滤消息。对于每个要获取的响应,我没有任何特定的标题。 我可以过滤消息,例如,通过 UUID 吗?以及如何实施?我试图在互联网上找到所需的信息,但没有结果。
非常感谢您的建议和帮助!
解决方法
是的,可以通过标头(一组固定的 JMS 标头名称)或属性(自定义键值对)过滤消息。
JMSCorrelationID 在这里可能是一个不错的选择。您可以发布具有相同 JMSCorrelationID 的给定生产者(或迭代)的所有消息,然后以这种方式检查消费者计数。
即 .. 对于 producer1 集:JMSCorrelationID = 'producer-1' 对于 producer2 集:JMSCorrelationID = 'producer-2'