首页 文章

Activemq PooledConnectionFactory中到期超时的含义是什么?

提问于
浏览
1

我不理解Activemq PooledConnectionFactory中expiryTimeout字段的应用 . java doc说“允许连接到期,无论负载或空闲时间如何 . 这对于故障转移非常有用,可以强制重新连接池,重新 Build 负载 balancer 或使用主后恢复” . 请给我一个例子,一个expiryTimeout字段效果的真实场景 .

1 回答

  • 1

    到期超时选项是池的一些遗留功能,如今在大多数应用程序中都不是那么有用 . 它的工作方式是,如果您配置了到期时间,那么在没有其他活动用户的情况下,如果没有Connection的其他活动用户,那么借出并稍后关闭的Connection将完全关闭和删除,否则它将保持活动状态直到所有活动实例都关闭,然后关闭底层的Connection对象 .

    这与Idle超时略有不同,Idle超时适用于池中未使用的Connection实例,并且在一段时间后关闭以释放Broker端的资源 .

    这些天你最好在PooledConnectionFactory中使用故障转移URI,同时支持集群客户端重新 balancer 的代理支持,然后动态地重新分配代理集群中的负载,而不是只有当前每个人都关闭Connection实例的到期超时 . 积极使用它们通过调用它们来释放它们 .

相关问题