我有一个为 1000 个客户端应用程序生成消息的应用程序。 每个客户端都会轮询此 ActiveMQ 并查找他的消息。
- 我应该为每个客户端实现一个队列吗?
- 为所有客户端使用一个队列并通过 JMS 属性区分消息会更好吗?
具有 JMS 属性的示例代码
制作人:
Message message = context.createTextMessage(text);
message.setStringProperty("Client", client);
context.createProducer().send(queue, message);
消费者:
String messageSelector = "Client = '" + client + "'";
JMSConsumer receiver = context.createConsumer(queue, messageSelector);
“客户”将成为我的唯一客户标识符。例如:client-1;客户端-2; ...或 GUID。
最佳答案
您预计每个客户端每秒有多少条消息?所有 1000 个客户端都会收到消息,并且消息选择也会降低吞吐量。将客户端分散到可管理数量的队列中是一个好主意。
关于java - 面向多个消费者 - 一个或多个队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30912629/