除了在Raft中复制之外,领导者还有其他责任,比如负载平衡吗?

时间:2017-10-24 15:23:33

标签: raft

我们正在尝试在聊天应用程序中实现Raft。据我所知,Raft是用于复制的,就是这样。因此,当客户想要连接到聊天服务器以与其他客户端聊天时,Raft是否要求所有客户端仅连接到领导者?如果是,如果它连接到关注者,则关注者可以将其重定向到领导者。但那又怎样?领导者是否再次将其分配给跟随者节点,即基本上领导者也表现为负载均衡器,或者它是否通过在所有其他服务器上复制用户数据来完成所有工作?

1 个答案:

答案 0 :(得分:0)

如果关注者告诉客户当前领导者的地址,并且客户必须重新连接到领导者,那么领导者就会超载。问题是领导者已经在进行日志复制的计算,并且 all 客户端处理也发生在领导者身上,而其他节点几乎处于空闲状态。此外,这严重限制了您拥有的客户端连接数。

另一方面,如果关注者接受客户端连接并将请求转发给领导者(通过长期的tcp连接),它会形成一种连接扇出,从而减轻领导者的负担。您可以对关注者进行的处理越多越好。

基于上述内容,我发现成功地使一些节点对客户端不可见,并且这些节点优先成为领导者。这样,他们从不受到客户端处理的阻碍。

相关问题