首页 > 解决方案 > 未知对等 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 管理员,所以我不确定这意味着什么,但鉴于之前未显示此警告,代码中的一些假设并未成立。

关于可以在这里做些什么来摆脱这个消息的任何想法?

标签: azurecassandraazure-cosmosdbdatastaxdatastax-java-driver

解决方案


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

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


推荐阅读