Hazelcast超时配置

超时错误

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
2
3
4
<properties>
<property name="hazelcast.client.heartbeat.timeout">6000</property>
<property name="hazelcast.client.heartbeat.interval">5000</property>
</properties>
  • timeout,心跳超时时间
  • interval,心跳频率
  • interval需小于timeout
------ 本文结束------

本文标题:Hazelcast超时配置

文章作者:Perkins

发布时间:2019年10月08日

原始链接:https://perkins4j2.github.io/posts/63914/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。