请教下大家,cassandra 集群中gossip信息交换相关问题 1. 集群发现是通过seeds节点主动去pull呢 还是节点各自固定频率交换信息; 2. 某个节点接受数据时,此时是主动push,还是按固定频率,节点pull获取信息。 这个我没有找到相关官方文档,求教于大家告知下
seeds只是在新节点bootstrap的时候有用,因为新节点加入cluster时候需要知道这个cluster的topology,这时候是通过seeds节点获得,对于已经加入cluster 的node,是节点之间互相交换信息,就像gossip一样,by default应该是每一秒交换一次信息,gossip还有一个failure detection,如果某个node在特定的failure detect window,内有没有response,其他node就会在gossip中把这个node mark成down的状态,这个failure detect window由phi_convict_threshold这个参数控制,如果这个值越大,这个window就越大,所以如果你的网络延迟高,可以适当调大这个值,by default是8
gossiop 只会交互最基本的version heartbeat信息,交互的时候上一个节点的到来时间ts这个信息会拿来计算一个phi,这个就是mike说的概率。都有对应的论文可以看。 再次,gossip的task是一个定时的交互任务,频率1s。会和一个live节点,一个unreachable节点以及如果live节点不是seed节点就再选一个seed节点进行交互。
同样seed节点间也是这样操作
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。