Closed xuziyang closed 1 year ago
客户端发送一条命令到Leader 节点,Leader 可能在执行命令之后但响应客户端之前宕机,此时客户端再去寻找下一个 Leader,同一个命令就会被执行两次
就是说,客户端协议设计有缺陷
协议层没有对这种场景进行处理,一般可以在上层解决,客户端可以携带一个唯一 id (业务层自己生成),服务端的业务状态机根据这个 id 做幂等判断
这不是 raft 算法要解决的问题。任何远程调用都有这个问题,需要应用层自己设计解决。
客户端发送一条命令到Leader 节点,Leader 可能在执行命令之后但响应客户端之前宕机,此时客户端再去寻找下一个 Leader,同一个命令就会被执行两次
就是说,客户端协议设计有缺陷