stateIs0 / lu-raft-kv

this is raft java project. raft-kv-storage
https://thinkinjava.cn/2019/01/12/2019/2019-01-12-lu-raft-kv/
Apache License 2.0
771 stars 211 forks source link

按照quick start的方法启动失败 #21

Open xyy9949 opened 1 year ago

xyy9949 commented 1 year ago

您好,我按照quick start的说明在idea中依次配置了多个启动项,加入 -DserverPort=8775,8776,8777等不同端口,但是我始终只能正常启动一个节点。我在macOS和ubuntu上都会出现这个问题。

截屏2023-04-25 22 40 57 截屏2023-04-25 22 41 09

以上是我两个节点的启动项配置。

Exception in thread "main" java.lang.ExceptionInInitializerError at cn.think.in.java.impl.DefaultStateMachine.getInstance(DefaultStateMachine.java:72) at cn.think.in.java.constant.StateMachineSaveType.(StateMachineSaveType.java:32) at cn.think.in.java.RaftNodeBootStrap.boot(RaftNodeBootStrap.java:58) at cn.think.in.java.RaftNodeBootStrap.main(RaftNodeBootStrap.java:38) Caused by: java.lang.RuntimeException: org.rocksdb.RocksDBException: While lock file: ./rocksDB-raft/null/stateMachine/LOCK: Resource temporarily unavailable at cn.think.in.java.impl.DefaultStateMachine.(DefaultStateMachine.java:67) at cn.think.in.java.impl.DefaultStateMachine.(DefaultStateMachine.java:36) at cn.think.in.java.impl.DefaultStateMachine$DefaultStateMachineLazyHolder.(DefaultStateMachine.java:88) ... 4 more Caused by: org.rocksdb.RocksDBException: While lock file: ./rocksDB-raft/null/stateMachine/LOCK: Resource temporarily unavailable at org.rocksdb.RocksDB.open(Native Method) at org.rocksdb.RocksDB.open(RocksDB.java:231) at cn.think.in.java.impl.DefaultStateMachine.(DefaultStateMachine.java:65) ... 6 more

Process finished with exit code 1 以上是我出现的错误的日志。

另外我发现您的 RaftNodeBootStrap 类中并没有对输入的args做任何的处理。这也让我不太理解。希望得到您的解答,谢谢。

截屏2023-04-25 22 43 59
stateIs0 commented 1 year ago
  1. 请使用 oracle jdk8
  2. q:《另外我发现您的 RaftNodeBootStrap 类中并没有对输入的args做任何的处理》a: 不支持相关参数哦
xyy9949 commented 1 year ago

您好,我的代码现在能够正常启动了,非常感谢! 我还有一个问题想要请教:如果我想在RaftClient控制节点的连接和断开来进行一些测试工作,那么应该如何发出request呢? 目前RaftClientRPC这个类中只有get和put两个方法,但是我看到Request的类型中包含RemovePeer和AddPeer。

截屏2023-04-27 00 29 55

应该是类似RaftClientRPC中get和put方法,然后修改Request r的信息。

截屏2023-04-27 00 35 02

希望您能解答,谢谢。

xyy9949 commented 1 year ago

目前只能通过手动的方式开启关闭节点

GalaxDust commented 1 year ago

您好,我的代码现在能够正常启动了,非常感谢! 我还有一个问题想要请教:如果我想在RaftClient控制节点的连接和断开来进行一些测试工作,那么应该如何发出request呢? 目前RaftClientRPC这个类中只有get和put两个方法,但是我看到Request的类型中包含RemovePeer和AddPeer。

截屏2023-04-27 00 29 55

应该是类似RaftClientRPC中get和put方法,然后修改Request r的信息。

截屏2023-04-27 00 35 02

希望您能解答,谢谢。

我在启动的时候也遇到了这个问题请问老哥你是怎么解决的

xyy9949 commented 1 year ago

您好,我的代码现在能够正常启动了,非常感谢! 我还有一个问题想要请教:如果我想在RaftClient控制节点的连接和断开来进行一些测试工作,那么应该如何发出request呢? 目前RaftClientRPC这个类中只有get和put两个方法,但是我看到Request的类型中包含RemovePeer和AddPeer。

截屏2023-04-27 00 29 55

应该是类似RaftClientRPC中get和put方法,然后修改Request r的信息。

截屏2023-04-27 00 35 02

希望您能解答,谢谢。

我在启动的时候也遇到了这个问题请问老哥你是怎么解决的

我是把 -DserverPort=xxxx 添加到 VM options 上,之前添加错误了

截屏2023-05-23 15 36 48