我正在查看此处提供的文档:https://www.datastax.com/blog/2019/03/distributed-database-things-know-cassandra-datacenter-racks 。它说机架和数据中心是一个抽象概念,而不是硬映射到物理上的东西。我也遇到过这个:
A Cassandra rack is a logical grouping of Cassandra nodes within the ring. Cassandra uses racks so that it can ensure replicas are distributed among different logical groupings. As a result, operations are sent to not just one node, but multiple nodes, each on a separate rack, providing greater fault tolerance and availability.
我的问题是,如果它们没有复制到不同的物理节点/机架上,那么如果一台机器出现故障,那么所有逻辑“机架”、“数据中心”不是也会变得不可用吗?我可能会错过很多与此相关的信息,但话又说回来,在大量搜索后我没有得到太多清晰的图片。
最佳答案
你说得完全正确。 Cassandra 允许您指定逻辑数据中心和机架,它们应该与其对应的物理数据中心和机架相对应。
但是没有什么强制你这样做。您绝对可以选择在单个物理数据中心内创建多个逻辑数据中心。您可以使用单独的逻辑机架定义每个节点,这些逻辑机架很可能安装在一起。更复杂的是,所有节点都可以在同一虚拟机管理程序主机上实例化。
在这种情况下,如果整个 DC、机架或单个主机出现故障,集群绝对会变得不可用。
出于显而易见的原因,我建议不要这样做。当我在云环境(内部或外部)中部署时,我确保尽可能多地了解物理层。这样我就能够构建逻辑数据中心抽象,以避免物理单点故障。
关于cassandra - 如果在 Apache Cassandra 中,数据中心和机架不直接与物理机架或数据中心相关,那么如何处理容错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64303291/