0

我在 Jboss AS 7.1.1-Final 中配置了 2 个节点集群。我打算使用粘性会话。同时,我还在 Infinispan 缓存中记录了活跃在线用户的数量,节点 IP 来自该用户会话的创建位置,用于报告目的。

我已经处理了登录/注销的场景,我将清除我们的缓存条目。问题是如果其中一个服务器节点出现故障,我需要编写清理例程以从缓存中清除该节点的此类记录。

一种选择是编写客户端并以特定间隔检查服务器是否还活着,否则会触发清理例程。这种方法可行,但我正在寻找更清洁的方法,如果我可以检测到服务器节点故障并通知其他活动节点,那么我可以进行清理。

从控制台我知道它会显示服务器何时关闭或启动。但是那个监听器会听这样的事件。有什么想法吗?

4

1 回答 1

1

如果您只需要知道节点何时离开某个服务器模块(在 JBoss 服务器内),您可以使用ViewChanged 侦听器

您无法在通过 REST 或 memcached 协议连接的客户端上获取此信息 - 使用 HotRod 协议是可行的,但非常 hackish,您必须覆盖TransportFactory.updateServers(可能只是扩展TcpTransportFactory - 请参阅配置属性 infinispan.client.hotrod.transport_factory)

于 2013-02-06T22:13:04.000 回答