我不了解Activemq PooledConnectionFactory中expiryTimeout字段的应用。 java doc说“允许连接到期,无论负载或空闲时间。这对故障转移非常有用,可以强制重新连接池,重新建立负载平衡或使用主后恢复”。请给我一个例子,一个expiryTimeout字段效果的真实场景。
答案 0 :(得分:1)
到期超时选项是池的一些遗留功能,目前在大多数应用程序中都没有用。它的工作方式是,如果您配置了到期时间,那么在没有其他活动用户连接的情况下,如果没有其他活动用户,则挂出并稍后关闭的Connection将完全关闭和删除,否则它将保持活动状态直到所有活动实例都关闭,然后关闭基础Connection对象。
这与Idle超时略有不同,Idle超时适用于池中未使用的Connection实例,并且在一段时间后关闭以释放Broker端的资源。
现在最好在PooledConnectionFactory中使用故障转移URI,并启用代理支持,以启用集群客户端的重新平衡,然后动态重新分配代理群集中的负载,而不是仅在每个人关闭连接实例时终止超时目前正在积极使用它们的是通过调用它们来释放它们。