大型Hazelcast集群的稳定性

时间:2016-01-12 19:46:41

标签: cluster-computing distributed hazelcast locks stability

我们已经(如果能够拥有自己的方式,那么太长时间没有成功)是一个大约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 -->

其余的只受&#34; Group Name&#34;的约束,根据我的理解,它定义了集群。我们的配置中不使用多播。 我们的集群的主要应用是分布式锁定。我们最近注意到的是节点之间的任意超时和丢弃连接,重复&#34;重新分区&#34;和挂锁。一段时间后,一切都冻结了。早些时候我们最终重新启动了节点,现在我们使用Hazelcast TestApp控制台清理锁定图。 我可以保证锁定和解锁的代码合理防水。 我的观察..我们之前没有遇到过这类问题,直到我们将Hazelcast更新为3.1.5并将我们的节点从30多个缩放到现在500多个,其中大多数节点都是JVM,通常多达十几个相同的物理节点。这不是一夜之间发生的,而是渐进的。

a)我们的大多数节点都没有在hazelcast.xml中显示这一事实会影响它们作为群集成员的稳定性吗?

b)有没有人看到过缩放的问题,这是一个Hazelcast的错误,还是我们做了一些非常错误的事情而你们其他人正在用Hazelcast打球?

1 个答案:

答案 0 :(得分:2)

  

a)我们的大多数节点在hazelcast.xml中没有计算的事实会影响它们作为集群成员的稳定性吗?

没有

  b)有没有人看到过缩放的问题,这是一个Hazelcast的错误,还是我们做了一些非常错误的事情而你们其他人正在用Hazelcast打球?

添加节点时,机会群集重新分区会增加。即如果单个节点失败的可能性是例如每天0.01%,然后有600个节点,您看到每日节点故障(=重新分区)的几率几乎为6%。 如果每个节点每天失败率为0.001%,那么整个群集的可能性仍然在1%左右。

换句话说,无论实现如何,您的群集可能都比建议的大。