问题描述
自升级到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,它应该可以工作。干杯!