2017-11-11 102 views
1

我不明白在Activemq PooledConnectionFactory中应用expiryTimeout字段。 java doc表示“允许连接过期,而不考虑负载或空闲时间,这对于故障转移强制从池中重新连接,重新建立负载平衡或使用主后期恢复很有用”。请给我举一个例子,其中expiryTimeout场效应真实场景。Activemq PooledConnectionFactory中到期超时的含义是什么?

回答

1

到期超时选项是池的遗留功能的一小部分,这些功能在大多数应用程序中都不是很有用。它的工作方式是,如果您配置了到期时间,那么出借并随后关闭的Connection将完全关闭,并且应该在Connection没有其他活动用户时放弃,否则它将保持活动状态,直到所有活动实例都关闭,那么底层的Connection对象关闭。

这与适用于在池中未使用的连接实例的空闲超时稍有不同,并在经过一段时间后关闭,以便在代理端释放资源。

最近,您最好在PooledConnectionFactory中使用故障转移URI,同时启用集群客户端重新平衡的代理支持,然后动态重新分配代理集群中的负载,而不是只关闭连接实例一次的到期超时目前正在积极使用它们的每个人都通过关闭它们来释放它们。