我正在尝试实现 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 关注
- 385 浏览
添加回答
举报
0/150
提交
取消