未知对等xxx,从架构协议检查中排除

问题描述

升级到Cassandra Java驱动程序v4.x以来,我们在客户端应用日志中始终看到以下消息:

[s1] UnkNown peer xxx,excluding from schema agreement check

FWIW,xxx似乎是UUID,而不是IP。

我们正在使用Cassandra Java驱动程序v4.6.1连接到Azure Cosmos DB。该消息似乎是从SchemaAgreementChecker发出的,但是它没有任何用处,因为它没有建议任何解决此问题的方法。在深入研究代码之后,我认为问题在于以下查询在每次执行时都会返回一个新的host_id

SELECT host_id,schema_version FROM system.peers;

SchemaAgreementChecker.java#L143

驱动程序似乎正在尝试将从对等八卦中收到的host_id与从InternalDriverContext中收到的节点进行匹配。我不是Cassandra或Azure管理员,所以我不确定它的含义是什么,但是鉴于此警告以前未显示,因此代码中的某些假设没有成立。 >

有什么想法可以摆脱这个消息?

解决方法

这是Azure Cosmos DB的问题,它不是Apache Cassandra的完整实现,但提供了类似CQL的API。

SchemaAgreementChecker.java类是在Java驱动程序4.0(JAVA-1638)中添加的,并且好像Azure Cosmos DB不完全兼容,因此请尝试使用Java驱动程序3.x,它应该可以工作。干杯!