gpt4 book ai didi

Hazelcast 监听器在客户端重新连接后不起作用

转载 作者:行者123 更新时间:2023-12-02 04:20:39 25 4
gpt4 key购买 nike

我的 hazelcast 客户端由于可能的内存爆发而断开连接。客户端重新连接后,它不会收到来自听众关于 map 和主题的消息。有没有办法让客户端再次对听众活跃?

这就是我在客户端/服务中启动监听器的方式:

IMap liveMap = hazelcastCacheClientService.getMap("MYMAP");
MyListener myMapListener = new MyListener();
liveMap.addEntryListener(myMapListener,true);

这是我的监听器的样子:

public class MyListener implements EntryListener {

@Override
public void entryAdded(EntryEvent entryEvent) {
//do something
}

@Override
public void entryEvicted(EntryEvent entryEvent) {

}

@Override
public void entryRemoved(EntryEvent entryEvent) {

}

@Override
public void entryUpdated(EntryEvent entryEvent) {
//do something
}

@Override
public void mapCleared(MapEvent mapEvent) {

}

@Override
public void mapEvicted(MapEvent mapEvent) {

}
}

我有多个其他服务,他们将条目放入 map 中。

最佳答案

如果您的版本是 3.9 或更早版本,则可能是一个错误。我们在 3.10 中改进了客户端重连逻辑,并在 3.11 中进一步改进。以下是客户端重新连接配置的 3.11 文档:https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#configuring-client-connection-retry

话虽如此,我总是推荐一种额外的断路器模式,例如来自 netflix 的断路器模式:https://github.com/Netflix/Hystrix/wiki/How-it-Works

为了恢复客户端监听器,最好销毁 hazelcast 实例并创建一个新实例。这会强制所有套接字在启动期间执行初始化。 Hazelcast 是一个套接字应用程序,因此如果您有 1/2 个打开的套接字,那么 Hazelcast 在恢复连接方面无能为力。

希望对您有所帮助,

关于Hazelcast 监听器在客户端重新连接后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60091913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com