在 Cassandra 关闭之前,每次以编程方式将数据刷新到 cassandra
我正在使用嵌入式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服务时,最近的更改都消失了。