java - 面向多个消费者 - 一个或多个队列?

标签 java queue jms

我有一个为 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/

相关文章:

c# - Queue.Clone方法使用C#

JBoss JMS远程队列?

java - 对列表中的所有属性值求和

c++ - LinkedList/Stack/Queue - 帮助出队

Java添加ActionListener到特殊按钮

c++ - 尝试实现无锁队列时发生堆栈溢出

java - 使用 RabbitMQ 和 JMS API 进行事务管理

java - 企业应用集成: Ways to communicate show rooms with central office

java - 使用 Spring Data Mongodb 进行地理空间查询

java - 两个具有不同参数的同名函数,一个没有作用域解析运算符,另一个有