【发布时间】:2015-01-28 16:50:25
【问题描述】:
我有一个使用 JMS 插件订阅给定 ActiveMQ 主题的 Grails 应用程序。如何使 TestService 类成为独占消费者? Details of exclusive consumer here
用例是我在 AWS EC2 上运行消费者,并且 ActiveMQ 提要的持续时间为 5 分钟,如果实例死亡,替换实例需要比这更长的时间。我不能丢失消息并且必须保留消息顺序,因此我希望使用多个实例,其中第一个连接实例将是代理发送每条消息的实例,而其他实例则保留。如果第一个实例死亡,AMQ 代理会将消息发送到其他实例之一。
此外,JMS 使用什么标准来确定独家消费者何时死亡或消失?
// resources.groovy
beans = {
jmsConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) {
brokerURL top://example.com:1234
userName = 'user'
password = 'password'
}
}
class TestService {
static exposes = ["jms"]
static destination = "SOME_TOPIC_NAME"
static isTopic = true
def onMessage(msg) {
// handle message
// explicitly return null to prevent unwanted replyTo attempt
return null
}
}
【问题讨论】:
标签: grails jms activemq spring-jms