我想知道如何在我的应用程序处于受控维护模式时方便地暂停所有使用者/消息收听者。该应用程序使用ActiveMQ 5.13.3客户端库。ActiveMQ:使用连接池时暂停/恢复使用者
前一段时间我已经从单一的ActiveMQConnectionFactory
切换到PooledConnectionFactory
。它被设置像这样:
ActiveMQConnectionFactory amcf = new ActiveMQConnectionFactory(config.getMessageBrokerUrl());
amcf.setTrustedPackages(Arrays.asList(new String[] {
"some.package.or.other",
"java.lang",
"java.util"
}));
connectionFactory = new PooledConnectionFactory(amcf);
connectionFactory.setCreateConnectionOnStartup(true);
消费者和生产者“创造”(=取)从连接池的连接,并“关闭”它当他们完成,将其返回到池中。显然在MessageListeners的情况下,它在启动时获得一次,并在应用程序关闭时返回。
ActiveMQConnection.stop()
说的是暂时停止连接传入的消息。完美的我想要的,只有游泳池显然包含许多连接,而不仅仅是一个。
如何暂停全部 ActiveMQ连接池的连接?
谢谢。暂停队列对我来说不是解决方案,其他客户端仍然应该通过它。用例是受控关闭群集中的单个节点。我会研究停止messageListeners而不是连接。 – Hank