【问题标题】:Stability of large Hazelcast cluster大型 Hazelcast 集群的稳定性
【发布时间】:2016-04-17 14:10:45
【问题描述】:

我们拥有(不会太久,如果权力随心所欲的话)一个相当大的集群,由大约 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 的时候我们做错了什么?

【问题讨论】:

  • 您需要600节点集群的原因是什么?一个具有 15 GB 堆的简单 10 节点集群应该能够持有大量锁。
  • 您在单个物理节点上拥有多达十几个 HZ JVM 的原因是什么?
  • 我从来没有机会看到这个问题,但这是我们集群的本质,每个节点都有密集的数学计算,其中有很多位于同一台机器上,每个其中可能有高达 300GB 的 RAM,并被十几个分区以处理我们工作流程的不同方面。我们现在可以用 Hadoop 来做吗?可能是,但恐龙继续活着

标签: cluster-computing distributed hazelcast locks stability


【解决方案1】:

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

没有。

b) 有没有人看到缩放问题,这是 Hazelcast 的错误,还是在你们其他人玩 Hazelcast 的时候我们做错了什么?

随着您添加节点,集群重新分区的机会会增加。 IE。如果单个节点失败的可能性是例如每天 0.01%,那么对于 600 个节点,您看到每日节点故障(= 重新分区)的机会几乎是 6%。 如果每个节点每天有 0.001% 的故障几率,您在整个集群范围内仍有大约 1% 的几率。

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

【讨论】:

  • 还有一点需要注意:如果您运行如此大的集群,您将不得不更改默认为 271 的分区计数(属性“hazelcast.partition.count”)。请参阅有关如何执行此操作的文档:docs.hazelcast.org/docs/3.5/manual/html-single/…
  • 谢谢你,noctarius 和 nilskp。当这些配置更改对我的集群产生任何影响时,我会更新我的发现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
相关资源
最近更新 更多