![]() |
Gossip 1.1
|
map:
gossip 协议并不能完全确保key是唯一的,因为消息可能是有延迟的; 所以这里要在入库的时候想办法对key进行去重,这里因为先在对应的worker上创建服务, 所以可以使得内部的 Key 为 service+(manager), 对外部还是表现为service。这样就可以实现过滤。
本质上,这个gossip node 所维护的是一个写入多,读取少的情景。
延迟删除是为了解决一个结点重复上下线的问题
目前来看,只有 heartbeat 与 search 操作是需要回调的
如果在发送消息前,把节点的版本号更改会发生什么呢?
全slot更新与部分slot更新的区别:全slot更新的收敛速度会更快,因为部分 Slot 会出现后一条消息到达,但是前面一条消息未到达的区别。 相比之下,全slot更新对系统的带宽消耗更大,而部分slot更新则要求每个message都存储版本号,并且还要采用标记删除机制,因此内存开销更大
gossip 协议的大部分本质上只是将本地存储的数据库加入了一层分布式搜索算法,或者允许使用过期数据的情况。