我们使用的是一个3节点集群,其replication={'class':'simplestrategy','replication\u factor':1}
但是当我们插入数据时,同一行出现在所有三个节点中(当我在每个节点上单独运行它时,我会看到它)
当我运行nodetool status时(我看到以下内容):
-- Address Load Tokens Owns (effective) Host ID Rack
UN 172.31.46.89 6.43 MiB 256 32.8% 2db6dc5c-9d05-4dc7-9bf5-ea9e3c406267 rack1
UN 172.31.47.150 13.17 MiB 256 32.1% eb10cc48-6117-427c-9151-48cb6761a5e6 rack1
DN 172.31.45.131 12.73 MiB 256 35.1% cc33fc04-a02f-41e2-a00b-3835a0d98cb5 rack1
有人能帮我理解为什么所有节点都有数据吗???
2条答案
按热度按时间cuxqih211#
cassandra是无主的,当您对集群中的任何节点进行查询时,它将请求相应的副本来回答您的查询。数据不会存储在rf=1的所有节点上。如果你真的想验证,看看你的
data/keyspace/table
目录并在数据文件上使用sstabledump。enyaitl32#
当rf=1时,数据不会存储在所有节点上。相反,当您与任何节点连接时,它充当协调节点,从负责数据的节点获取数据并提供响应。
如果协调器最终是负责数据令牌范围的节点之一,则它仅在本地(在写入时)存储数据。