菜单
Grafana米密尔 引用 体系结构 Memberlist和八卦协议
开源

Grafana米密尔memberlist和八卦协议

Memberlist是一个去图书馆管理集群成员,节点故障检测和使用gossip-based消息传递协议。Memberlist最终一致和网络分区部分容忍,试图通过多个潜在死亡节点通信路线。

默认情况下,Grafana米密尔使用memberlist来实现键值(KV)存储共享散列环数据结构实例之间。

当使用memberlist-based KV商店,每个实例维护哈希环的一个副本。每个米密尔实例更新本地一个散列环并使用memberlist更改传播到其他实例。更新本地生成和更新收到其他实例合并在一起形成上的实例的当前状态。

配置memberlist,请参考配置散列环

memberlist传播散列环如何变化

当使用memberlist-based KV商店,每个Grafana米密尔实例将散列环数据结构传播到其他实例使用以下技术:

  1. 传播只在最近引入的差异变化。
  2. 传播的全部散列环数据结构。

每一个-memberlist.gossip-interval随机选择一个实例的一个子集Grafana米密尔集群实例的配置-memberlist.gossip-nodes并发送最新的更改所选实例。经常做这个手术的,所使用的主要技术传播的变化。

此外,每个-memberlist.pullpush-interval随机选择一个实例的另一个实例Grafana米密尔集群和转移的全部内容KV商店,包括所有散列(除非响起-memberlist.pullpush-interval是零,禁用此行为)。此操作完成后,有相同的两个实例内容的KV商店。这个操作在计算上更贵,因此,它执行的频率更低。操作确保了散列环定期协调到一个共同的状态。