我们在Kubernetess上运行6个节点的Cassandra(3.11.2)集群。最近,我注意到system.peers
表中的数据不一致。但是,system.local
中的数据似乎还可以。 nodetool describecluster
也不会报告任何问题。
在下面,您将找到system.peers和system.local查询的匿名结果。我通过一次将端口转发到单个节点来执行它们(我希望这可以跳过负载平衡策略并直接访问节点)
system.peers
表的状态是否有害?或者也许是预期的?
SELECT peer, schema_version FROM system.peers
node 0
peer | schema_version
IP1 | schema2
IP2 | schema1
IP3 | schema1
IP4 | null
IP5 | schema1
IP6 | schema1
IP7 | schema1
node 1
peer | schema_version
IP8 | null
IP9 | schema1
IP3 | schema1
IP5 | schema1
IP6 | schema1
IP7 | schema1
node 2
peer | schema_version
IP11 | null
IP2 | schema1
IP9 | schema1
IP3 | schema1
IP4 | schema3
IP10 | null
IP5 | schema1
IP6 | schema1
node 3
peer | schema_version
IP12 | schema3
IP2 | schema1
IP9 | schema1
IP13 | null
IP3 | schema1
IP5 | schema1
IP7 | schema1
node 4
peer | schema_version
IP2 | schema1
IP9 | schema1
IP3 | schema1
IP6 | schema1
IP7 | schema1
node 5
peer | schema_version
IP8 | schema3
IP2 | schema1
IP9 | schema1
IP5 | schema1
IP6 | schema1
IP7 | schema1
SELECT key, broadcast_address, schema_version FROM system.local
node 0
key | broadcast_address | schema_version
local | IP9 | schema1
node 1
key | broadcast_address | schema_version
local | IP2 | schema1
node 2
key | broadcast_address | schema_version
local | IP7 | schema1
node 3
key | broadcast_address | schema_version
local | IP6 | schema1
node 4
key | broadcast_address | schema_version
local | IP5 | schema1
node 5
key | broadcast_address | schema_version
local | IP3 | schema1
nodetool describecluster
Cluster Information:
Name: CLUSTER_NAME
Snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch
DynamicEndPointSnitch: enabled
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Schema versions:
e718e690-d474-376e-8020-ed0eba5b6797: [IP5, IP9, IP3, IP2, IP6, IP7]
答案 0 :(得分:0)
这是意外的,但已知会发生,例如:CASSANDRA-7122,CASSANDRA-7531。
这可能会导致不同的客户端驱动程序出现问题(例如,请参见JAVA-852和JAVA-2280),尽管大多数客户端库将忽略此类损坏的对等记录,并在发生错误时记录警告。
既然您提到Kubernetes,是否有可能经常更换节点?我想知道C *中是否存在潜在的错误,即它没有正确删除旧的对等项。过去,有一些问题已通过COULD NOT REPRODUCE
解决。
如果您可以很容易地重现此问题,那么可以create a JIRA ticket描述问题及其重现方式,这对社区超级有帮助。否则,如果您没有时间,可以描述您的kubernetes设置(例如,您正在使用社区运营商还是其他工具?)并说明您可能正在做的一些操作可能对此有所帮助(例如,替换节点) )有空的时候我可以调查一下。