azure - 未知对等 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,它应该可以工作。干杯!
推荐阅读
- python-3.x - 在 elif 正文中将数组元素转换为整数导致错误
- angular - 如何根据另一个 observable 的结果订阅(或不订阅!)一个 observable
- javascript - 如何在打字稿中访问枚举?给出错误“元素隐式具有任何类型,因为索引表达式不是数字类型”
- ajax - 如何在laravel中有正常查询数据的页面中使用AJAX
- java - 如何加速非常大的集合的延迟加载
- visual-studio - Visual Studio VTR8.0 中的 CMake 构建错误
- acumatica - 如何修改流程准备发票
- ios - Swift 将无效 URL 格式化为有效 URL
- mysql - 发生数据库错误 错误号 1064
- python-3.x - SymPy 限制符号