固定到(死)节点的cassandra机架复制[rf和cl混淆]

rryofs0p  于 2021-06-15  发布在  Cassandra
关注(0)|答案(2)|浏览(307)

1个群集,3个节点,位于2个物理位置,分组在2个机架中
射频2
属性文件告密者
cl法定人数
问题是:
第一个节点(在rac1中)的复制从rac2指向第三个节点,如果该节点关闭、读写失败,则不会更改。

如果我重新启动第三个节点并关闭第二个节点,读写就可以了。
第二个和第三个节点都复制到第一个节点,如果第一个节点关闭,读写也会失败。
问题是:
是否可以使其自动检测死节点并将复制指向检测到的活动节点?
如果第一个节点关闭,第二个和第三个节点将在彼此之间复制数据
如果第二个或第三个节点关闭,第一个节点应该检测哪些节点处于活动状态并复制到它
更新1:
做了一些测试:
关闭第一个节点-从第二个和第三个节点读取失败( Unable to complete request: one or more nodes were unavailable. )
关闭第二个节点-第一个和第三个节点的读取工作
关闭第三个节点-从第一个和第二个节点读取失败
很奇怪。。。
更新2:
我想我找到答案了。现在是怎样的:3个节点,rf2,写和读有cl2。如果一个复制副本关闭,则读取和写入失败(我测试了选择不同的密钥,其中一些在一个节点关闭时成功,而另一个节点关闭时失败)
现在我正在考虑这样做:将所有节点移到一个机架上,将rf改为3,对于读和写,我将使用cl2(要成功写入,需要两个复制,第三个将在后台进行)。所以现在将有3个副本,如果其中一个失败,cl2将成功。
我说得对吗?
如果有2个节点处于活动状态,复制因子为3,并且当前写入操作的一致性级别为2,则写入是否成功?
更新3:
是的,我想我走对了。同样的问题

smdnsysy

smdnsysy1#

从截图上可以推测它是opscenter。
在opscenter中有一个称为警报的特殊功能。它将帮助你发现死亡节点。
现在谈到节点关闭和读写失败的问题,基本上这些都取决于读写一致性级别。通过一致性级别,您将能够自己找到解决方案。
更新:
也许你会觉得这个博客很有趣。cassandra失败的唯一时间是当协调器接收到请求时,活动副本太少。这可能是你奇怪处境背后的原因

iyfamqjs

iyfamqjs2#

您希望rac1中的所有三个节点的复制因子均为3,并对读/写操作使用仲裁。这将确保数据始终保留到两个节点,读取将保持一致,并且可以有一个失败的节点而不会停机或丢失数据。如果您不关心读取总是一致的,也就是说,有时允许使用过时的数据,那么您可以通过使用一个读取来提高读取的性能。

相关问题