我想知道如何在我的應用程序處於受控維護模式時方便地暫停所有使用者/消息收聽者。該應用程序使用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