我们有(不会太久,如果权力有他们的方式)一个相当大的集群,大约 600 个节点,所有节点都在同一个“组名”下,而其中只有一小部分(大约一个十几个)曾经进入 hazelcast.xml 中定义的 TCP/IP 接口列表
这是我们的配置
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.1.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<group>
<name>BlappityBlah</name>
<password>blahBlaha</password>
</group>
<management-center enabled="false"/>
<network>
<port auto-increment="true">6401</port>
<outbound-ports>
<!--
Allowed port range when connecting to other nodes.
0 or * means use system provided port.
-->
<ports>0</ports>
</outbound-ports>
<join>
<multicast enabled="false">
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true">
<interface>10.50.3.101-102,10.50.3.104-105,10.50.3.108-112,10.60.2.20,10.60.3.103,10.60.4.106-107</inter
face>
</tcp-ip>
<aws enabled="false">
<access-key>my-access-key</access-key>
<secret-key>my-secret-key</secret-key>
<!--optional, default is us-east-1 -->
根据我的理解,其余部分仅受定义集群的“组名”的约束。我们在配置中不使用多播。我们集群的主要应用是分布式锁定。我们最近注意到的是任意超时和节点之间的连接断开、重复的“重新分区”和挂锁。一段时间后一切都冻结了。之前我们最终重新启动了节点,现在我们使用 Hazelcast TestApp 控制台来清除锁映射。我可以保证锁定和解锁的代码是相当防水的。我的观察.. 我们之前没有遇到过这类问题,直到我们将 Hazelcast 更新到 3.1.5 并将我们的节点从 30 多个扩展到现在 500 多个,其中大多数节点是 JVM,通常在同一个节点上多达十几个物理节点。这没有
a) 我们的大多数节点都没有出现在 hazelcast.xml 中这一事实是否会影响它们作为集群成员的稳定性?
b) 有没有人看到缩放问题,这是 Hazelcast 的错误,还是在你们其他人玩 Hazelcast 的时候我们做错了什么?