微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当 Cassandra 在数据库中写入数据时,它从哪里花费 WRITETIME 时间?

如何解决当 Cassandra 在数据库中写入数据时,它从哪里花费 WRITETIME 时间?

当 Cassandra 将数据写入数据库时​​,它使用 WRITETIME 写入数据。我的问题是,时间是来自运行 Cassandra 的服务器,还是来自运行向 Cassandra 写入数据的应用程序的服务器?

背景是我们的 writetime 有问题,一些数据是在未来 (07-02-2036) 用 WRITETIME 写入的,这意味着 NTP 可能有问题,但尚不清楚是哪些机器导致了问题Cassandra 服务器或应用服务器。

解决方法

这取决于您的应用程序中使用的驱动程序版本。很长一段时间,writetime 是服务器时间,但在某些时候发生了切换,并且 writetime 开始由驱动程序发送(它在 Cassandra 本地协议的第 3 版中引入)。因此,您需要在 Cassandra 和应用程序节点上都运行 NTP。

对于 Java 驱动程序,默认情况下以 version 3.0 开头,对于其他驱动程序,它应该类似,大约在同一时间(~2016 年)。来自 java 驱动程序文档:

客户端生成:如果您使用驱动程序 3.0+ 和支持本机协议 v3 或更高版本的 Cassandra 版本,则默认启用此功能。

但是也可以明确设置写入时间,因此您也可以检查您的应用程序是否正在这样做。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。