2017-11-11 264 views
1

我不明白在Activemq PooledConnectionFactory中應用expiryTimeout字段。 java doc表示「允許連接過期,而不考慮負載或空閒時間,這對於故障轉移強制從池中重新連接,重新建立負載平衡或使用主後期恢復很有用」。請給我舉一個例子,其中expiryTimeout場效應真實場景。Activemq PooledConnectionFactory中到期超時的含義是什麼?

回答

1

到期超時選項是池的遺留功能的一小部分,這些功能在大多數應用程序中都不是很有用。它的工作方式是,如果您配置了到期時間,那麼出借並隨後關閉的Connection將完全關閉,並且應該在Connection沒有其他活動用戶時放棄,否則它將保持活動狀態,直到所有活動實例都關閉,那麼底層的Connection對象關閉。

這與適用於在池中未使用的連接實例的空閒超時稍有不同,並在經過一段時間後關閉,以便在代理端釋放資源。

最近,您最好在PooledConnectionFactory中使用故障轉移URI,同時啓用集羣客戶端重新平衡的代理支持,然後動態重新分配代理集羣中的負載,而不是隻關閉連接實例一次的到期超時目前正在積極使用它們的每個人都通過關閉它們來釋放它們。