有人可以帮助我理解节点在读写时相互交谈时使用的协议,例如,客户端连接到协调器节点进行写入,然后协调器节点将写入转发到拥有分片的适当节点。现在我的问题是,在这种情况下他们使用什么协议(Cassandra 代码参考也会很有帮助)?
我知道节点使用 gossip 来传播关于他们自己和他们知道的其他节点的状态信息,但试图理解节点之间的读写协议。
有人可以帮助我理解节点在读写时相互交谈时使用的协议,例如,客户端连接到协调器节点进行写入,然后协调器节点将写入转发到拥有分片的适当节点。现在我的问题是,在这种情况下他们使用什么协议(Cassandra 代码参考也会很有帮助)?
我知道节点使用 gossip 来传播关于他们自己和他们知道的其他节点的状态信息,但试图理解节点之间的读写协议。
每个 Cassandra 节点都使用 gossip 了解集群的环状态。当节点(协调器)收到读/写请求时,它会应用从业者哈希函数来识别负责数据的主节点以及副本节点。然后根据一致性等待来自所需数量的节点的确认。您可以参考此博客的“编写流程示例”部分。我不了解协议,但最好了解协调器如何处理读/写请求的算法。