这里是我们建立JMS拓扑结构(排队多个消费者)和消息分组
[Front server 1 (message producer)] [Front server n (message producer)]
| |
|________________ ________________|
| |
[Messaging Server (HornetQ)]
| |
________________| |________________
| |
[Task server 1 (Message Driven Bean)] [Task server n (MDB)]
-
简化/示意图拓扑
- 每个节点(服务器)是一个独立的(没有簇)JBoss应用服务器(Jboss的-as7)包括消息传递。
- 消息传递服务器部署许多JMS队列。
- 每个任务服务器为许多使用者部署每个队列的MDB。
- 所有消息生产者使用相同的入站适配器,所有消息使用者(MDB)都是相同的出站适配器。实际上,所有前端节点完全相同(相同的AS,相同的配置,相同的部署工件),对于所有服务器节点都是相同的。
现在,这里是我的问题:
的应用程序是一个多租户之一,对于给定的队列中,一些任务(信息处理)不能在一个给定的租户并行处理,我们成立所以message grouping来处理这个约束。消息组是承租人名,由消息生产者发送消息时设置:
message.setStringProperty("JMSXGroupID", tenantName);
在一个平台上,我们有1000多个租户(所以1000+不同的消息组),并对于给定的队列3名消费者每服务器和3个任务服务器。
当在消息服务器上监视此队列时,我们可以在队列和9个消费者中看到数千条消息。我们期望消息能够按9递9递送,但实际上递送消息计数不会超过1.
这里有什么问题?是适合我们需要的拓扑结构吗?
能否请您详细说明9 * 9和计从未超过1 –