gpt4 book ai didi

java - 每次在 cassandra 关闭之前以编程方式将数据刷新到 cassandra

转载 作者:太空狗 更新时间:2023-10-29 22:41:40 30 4
gpt4 key购买 nike

我正在使用嵌入式 Cassandra。当我关闭并重新启动时,我的 Cassandra 服务数据丢失了。我认为体面的数据没有正确地刷新到磁盘中。所以我尝试使用 nodetool 手动刷新数据并检查数据是否可用。但是 nodetool 似乎不能为嵌入式 Cassandra 服务正常工作。我收到以下错误:

c:\vijay\cassandra\bin>nodetool -host 192.168.2.86 -p 7199 drain

Starting NodeTool

Failed to connect to '192.168.2.86:7199': Connection refused: connect

我尝试设置 jmx 属性,但仍然出现错误。我在我的代码中添加了以下几行:

System.setProperty("com.sun.management.jmxremote", "true");
System.setProperty("com.sun.management.jmxremote.port", "7197");
System.setProperty("com.sun.management.jmxremote.authenticate", "false");
System.setProperty("com.sun.management.jmxremote.ssl", "false");
System.setProperty("java.rmi.server.hostname", "my ip");

那么,有没有办法不使用nodetool,手动刷数据到Cassandra?

编辑 1:
经过几个小时的尝试,我现在可以运行 nodetool(而不是将 jmx 配置添加到我添加到 Eclipse 调试配置的代码中并且它起作用了)。我现在运行了 drain 命令,数据已正确刷新到磁盘。所以现在我的问题是:为什么数据没有正确刷新?每次我重新启动 Cassandra 服务时,最近的更改都消失了。

最佳答案

您如何停止和启动 Cassandra 服务器?在 Cassandra 守护进程上调用 stopServer 应该将所有未完成的写入刷新到提交日志。即使在方法返回后线程仍会继续执行一些处理,因此如果您在 stopServer() 之后终止 JVM,则可能会阻止写入数据。

关于java - 每次在 cassandra 关闭之前以编程方式将数据刷新到 cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520839/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com