超时错误
1 | processor error:com.hazelcast.client.HazelcastClientNotActiveException: Client is shutting down |
- 若Hazelcast中成员全部断开,Client则抛出以上异常,此时,连接池连接已无效
- Hazelcast成员重启后,Client继续抛出以上异常,无法重新初始化连接池
- 为重新初始化连接,则需要修改重试策略,以便重启成员,且无需重启Client
默认重试
网络重试1
2
3
4<!--6s-->
<connection-timeout>6000</connection-timeout>
<!--1day:14400-->
<connection-attempt-limit>14400</connection-attempt-limit>
- timeout,超时时间
- limit,超时次数
- limit可以设置无限大,以保障服务重连;若超过次数,则断开该连接
重试策略
细粒度的重试策略配置,若开启则忽略网络重试。1
2
3
4
5
6
7
8
9
10
11<connection-strategy async-start="true" reconnect-mode="ASYNC">
<connection-retry enabled="true">
<!--first time:1s -->
<initial-backoff-millis>1000</initial-backoff-millis>
<!--max time:1s -->
<max-backoff-millis>1000</max-backoff-millis>
<multiplier>2</multiplier>
<fail-on-max-backoff>false</fail-on-max-backoff>
<jitter>0.5</jitter>
</connection-retry>
</connection-strategy>
- async,异步连接,不阻塞当前线程,默认同步
- initial,第一次超时时间
- max,最大超时时间
- multiplier,乘数因子,以扩大下一次连接时间,默认2
- fail,超过最大连接时间后是否失败,如不失败,继续重连,默认继续重连
- jitter,选择随机重试成员的权重,默认0.2
心跳配置
1 | <properties> |
- timeout,心跳超时时间
- interval,心跳频率
- interval需小于timeout