什么是聚合来自许多不同来源(实际上是队列/主题)的消息到单个队列/主题然后消耗它的最佳方式。我试图设计一个应用程序,使用weblogic从JMS中的不同主题接收消息。将来自多个目标的JMS消息集中到单个队列
1
A
回答
1
你可以写你自己的“聚合器”作为一个独立的Java应用程序:
- 对于每个队列/主题都在自己的线程读者。
每个阅读器再次在“聚合队列”上发送其收到的消息。
有另一个线程来监听“聚合队列”。
作为一种变体,您可以使用JVM队列(如java.util.concurrent.ArrayBlockingQueue
)作为“聚合队列”。这是更快的,不需要另一个MQ队列,不需要网络带宽,但它不是持久的。
另一个想法是使用“消息驱动bean(MDB)”为每个传入队列/主题:
- 同样,每个这些的MDB的刚读取消息,并将其重新发送到“聚合队列“。
- 让另一个MDB在“聚合队列”上侦听。
0
关于质量要求的一些建议。我相信你必须考虑他们。 他们将高度关注您的技术解决方案。
是指消息丢失是否可以接受? 客户端可以考虑。 例如内存队列坐在中间,例如传入队列1 ... n - >内存中的ArrayBlockingQueue - >传出队列。 ArrayBlockingQueue中的数据将在应用崩溃时丢失。
是单个传出队列可接受的消息副本吗? 我会建议是的。 设置适用级别PossibleDuplicateFlag使客户端意识到这一点。
差异传入队列每秒传入消息的速度有多快? 一个队列会话只有一个uniqe线程。性能必须提前考虑。
相关问题
- 1. 弹簧集成:接收来自多个JMS目标的消息
- 2. 多个集群正在侦听相同的JMS消息队列
- 3. Apache Camel:如何使用来自两个或多个JMS队列的消息
- 4. Rabbitmq:优先消费来自多个队列的消息
- 5. Java:将消息发送到多线程的JMS队列
- 6. JMS队列消息接收订单
- 7. JMS消息生产者不会将消息发送到队列
- 8. JMS队列接收消息?
- 9. JMS消息回滚到队列
- 10. JMS消息重新传递到队列
- 11. 如何接收来自Glassfish的消息(v3)JMS队列
- 12. 统计JMS队列中的消息数
- 13. 替换jms队列中的消息
- 14. JMS队列中的延迟消息
- 15. Spring JMS集成单元测试在队列上留下消息
- 16. 配置MSMQ路由消息从一个队列到另一个队列(目标)
- 17. msmq单个队列中的多个消息类型
- 18. 使用多线程从JMS队列中消费消息
- 19. 发送多条消息到Mule的JMS队列
- 20. 将测试消息发布到JMS队列的工具?
- 21. 将消息发送到完整的JMS队列
- 22. 将消息从一个jms队列路由到另一个队列时的事务提交延迟
- 23. JMS队列客户端onMessage()没有收到来自发件人的消息
- 24. 消息队列中的多条消息
- 25. NATS发布者可以将单个消息发送到多个队列吗?
- 26. 使用JBoss将消息发布到远程JMS队列
- 27. Java内部消息队列/ JMS
- 28. 发送XML消息给SONIC JMS队列
- 29. 在JMS队列上发布消息?
- 30. 在JMS队列上测试消息