使用cassandra集群管理器,我创建了一个包含4个节点的集群: node1、node2、node3、node4。
然后,我使用cqlsh创建了一个复制因子为3的密钥空间。
所以我猜在某个地方应该有3个我的数据副本。我期望的是,如果我创建一个表,会有3个“副本”分布在这4个节点上
但是如果我停止node1,我根本不能访问这个表。我收到的消息是没有主机可用。
我的推理错误在哪里?如何设置复制因子,以使我的数据实际分布在多个节点上?
发布于 2017-12-14 06:00:36
cqlsh使用白名单策略,即客户端将只连接到一台主机。如果1个主机宕机,您将得到一个NoHostAvailable异常,并且它将无法尝试任何其他节点。尝试将cqlsh连接到您关闭的主机以外的主机,或者使用具有适当负载平衡策略的cassandra驱动程序之一。
https://stackoverflow.com/questions/47802368
复制相似问题