当前位置: 首页 > 知识库问答 >
问题:

为CP子系统选择安全数量的成员

堵鸿光
2023-03-14

我试着浏览文档,但我仍然不确定CP子系统的设置是否适合我目前的情况。

我们有一个Hazelcast集群,分布在2个数据中心,每个数据中心有偶数个成员,例如4个,但在推出期间可以有多达两倍的成员。

每个数据中心中的框被配置为单独分区组的一部分=

考虑到一个数据中心可能作为BAU的一部分被解耦,设置为CP子系统成员计数的最佳数字是多少?

我最初考虑将计数设置为5,以强制Raft共识中的每个数据中心至少有一个框作为一般情况(在重新部署期间,翻滚只会发生很短的时间,所以可能没什么大不了的),但这可能意味着,当一个数据中心解耦时,共识将不可能实现。另一方面,如果我在一个dc中设置了一个小于框数的值,比如3,如果共识组中的所有框都被分配到同一个dc中,并且该dc会由于网络条件而突然消失,会发生什么情况?这些都是假设,因为CP对我来说是一个相对较新的话题,所以如果我错了,请纠正我。

共有1个答案

羊禄
2023-03-14

我们更喜欢三个数据中心,但有时第三个数据中心不可用。

几年前,我的团队在扩展到一个新的司法管辖区时也面临着同样的决定。有很多选择,这里有一些。在所有这些场景中,我们都对系统在网络分区中的行为进行了广泛的测试。

这是我们最终的选择。我们将三分之二的主机放在一个数据中心,三分之一的主机放在辅助数据中心。我们尽可能将客户端流量加权到主数据中心。我们还与客户沟通了这一偏好,以便他们可以在需要时也这样做。

如果数据中心有多个房间,我们确保主机分布在不同的房间中,以帮助缓解数据中心内的电源/网络中断。至少,我们确保主机位于不同的机架上。

我们还有多个集群,对于每个集群,我们通常会切换哪个数据中心是主要的,哪个是次要的。在一些有着臭名昭著的电力问题的司法管辖区,我们没有这样做。

当数据中心发生故障时,会发生什么,这取决于上帝。这就是我们选择第一个选项的原因:我们希望选择每个数据中心发生故障时会发生什么。

将主机置于与两个数据中心完全不同的区域。大多数情况下,延迟将太高,此主机无法完全参与一致决策,但在网络分区的情况下,它可以帮助将大多数迁移到其中一个分区。

平局中断主机必须是仲裁的一部分,并且不能因为延迟而被踢出。

这些东西很贵,但它让耐用性的故事变得更好。不总是一种选择。

 类似资料:
  • 我正在使用Hazelcast CP子系统,但我的应用程序运行在两个不同的数据中心中。由于许多原因,不可能在短时间内将其扩展到至少一个具有完整应用程序和所有内存中数据的数据中心。但我明白,如果没有第三个地方的成员,我就无法避免分裂大脑的情况。所以主要的问题是:有没有可能有一个Hazelcast成员,它不存储任何数据,但单独作为CP子系统成员? 对于一个仅充当两个数据中心之间的平衡器的小应用程序,我将

  • Slitaz提供许多关于系统安全的信息。软件在进入稳定发行版之前会经过几个月的测试。在启动的时候,服务会由rc脚本运行。要想知道开机自启动的服务列表,你可以查阅/etc/rcS.conf中的RUN_DAEMONS变量: $ cat /etc/rcS.conf | grep RUN_DAEMONS 要显示当前进程及其PID、内存使用,你可以使用ps命令或者htop程序(需安装): $ ps $ ht

  • Chapter 10. 系统安全 Table of Contents 10.1. 安全等级 10.2. 安全策略 10.3. 安全工具 系统安全是应用的基础,一个安全的系统才能长时间不间断运行,有效支持我们的应用。建立一个安全的系统需要一个好的软硬件平台,但更重要的是要有一个优秀的系统管理员能及时地发现安全问题和解决安全问题。 如何评价一个系统的安全程度,美国国家计算机安全中心(NCSC)制定了可

  • 在Firebase生态系统中,例如在云Firestore中,财务成本高度依赖于文档读取等因素。 > 有没有什么东西可以保护我们免受敌人直接向我们的Firestore发送大量读取请求(绕过我们的应用程序),从而抬高我们的成本? Firebase平台是否以某种方式识别并过滤掉了这一点,或者,如果这件事发生在我们身上,我们是否只需要付费? 澄清:假设我们的Firestore安全规则是这样的,任何人都可以

  • 直到现在(遗留),身份验证工作所需的全部工作就是在subsystems->Security中创建一个具有正确名称的安全域(“referencesapplicationdomain”)。 我的web.xml: 我的jboss-web.xml: 我遵循Wildfly Elytron文档使用JBoss-CLI创建了安全域和http工厂。 当我签入jboss-cli时,我看到安全域已经创建。 然而,当我尝

  • 当使用 tenant2 身份登录并打开它的编辑窗体,没有显示选择 Tenant 下拉列表,因此就不能改变它的 Tenant 吗? 错! 如果是一个普通的用户,就不能改变 Tenant。但如果有一些 Serenity 及服务器工作原理的知识,就能修改 Tenant。 当你正在使用 web 时,你得更认真地对待安全。 非常容易就在 web 应用程序中创建安全漏洞,除非你在客户端和服务器端都进行验证处理