我正在嘗試實現 Raft 共識算法,但由于某種原因無法使用 RPC 調用。我正在使用 labrpc.go 撥打電話。我的函數簽名:func (rf *Raft) RequestVotes(args RequestVoteArgs, reply *RequestVoteReply) bool和我正在打的電話if err := rf.peers[peerIdx].Call("Raft.RequestVotes", args, &reply); err == false {筏結構:type Raft struct {... peers []*labrpc.ClientEnd // RPC end points of all peers...}但我不斷收到此錯誤:labrpc.Service.dispatch():Raft.RequestVotes 中的未知方法 RequestVotes;期待 [] 之一我還有其他幾種Raft.方法,那么[] 的期望之一應該是非空的嗎?
1 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
RPC 方法沒有被識別為 RPC 方法,因為我明確地返回bool
. 更改代碼以返回 void(完全刪除返回)解決了這個問題。
更新的函數簽名:
func (rf *Raft) RequestVotes(args RequestVoteArgs, reply *RequestVoteReply) {
- 1 回答
- 0 關注
- 456 瀏覽
添加回答
舉報
0/150
提交
取消