我正在使用嵌入式Cassandra。当我关闭并重新启动Cassandra服务时,数据会丢失。我认为数据没有被正确刷新到磁盘中。因此,我尝试手动使用nodetool刷新数据并检查数据是否可用。但是对于嵌入式Cassandra服务,nodetool似乎无法正常工作。我收到以下错误:
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");
那么,有没有办法手动将数据刷新到Cassandra而不使用nodetool呢?
编辑1:
经过几个小时的尝试,我现在能够运行nodetool了(而不是将jmx配置添加到我的代码中,我添加到了Eclipse调试配置中,然后它就可以工作了)。我运行了drain命令,现在数据已经正确地刷新到磁盘上了。所以现在我的问题是:为什么数据没有被正确地刷新?每次重新启动Cassandra服务时,最近的更改都会消失。