• Consul:Gossip协议


      Consul使用gossip协议来管理成员和广播消息到集群。所有这些都是通过使用Serf库提供的。Serf使用的gossip协议基于“SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol”,有一些小的修改。更多关于Serf的协议细节见此文档

    Consul中的Gossip

      Consul使用两个不同的gossip池。我们分别称为LAN和WAN池。每个数据中心有一个LAN gossip池,它包含数据中心的所有成员——client和server。LAN池用于几个目的:成员关系运行client自动发现server,减少配置量;分布式的故障检测允许故障检测的工作由整个集群承担,而不是集中在少数server上;最后gossip池允许可靠和快速的事件广播,比如leader选举。

      WAN池是全局唯一的,以为所有的server都应该加入WAN池,不论是哪个数据中心的。WAN池提供的成员关系允许server执行跨数据中心请求。集成的故障检测允许Consul优雅的处理整个数据中心失联,或者远程数据中心只有一个server。

      所有这些特征通过Serf提供。它被用来作为一个嵌入式的包来提供这些特征。从用户的角度,这是不重要的,因为这些抽象应该被Consul屏蔽。然而这对于开发者理解这个包是如何应用是很有用的。

    Lifeguard Enhancements

      SWIM假设本地节点是健康的,在这个意义上软实时处理数据包是可能的。然而,在本地节点正处于CPU或者网络资源枯竭的情况下,这个假设就不成立了。结果就是serfHealth检查状态会偶尔的抖动,导致错误的报警,增加遥测噪声,和简单的导致整个集群浪费CPU和网络资源来诊断一个可能并不真的存在的故障。

      Lifeguard通过增加SWIM彻底解决了这个问题。Lifeguard的更多的细节请看Serf的gossip协议引导部分

  • 相关阅读:
    github上传本地项目
    vue.js form表单提交
    vue.js 数据交互 ajax
    锐浪报表字段分割
    前台与后台的数据交互(node.js与mysql)
    canvas标签__线段(新手随笔)
    canvas标签—矩形(新手随笔)
    项目显示页面思路(新手随笔)
    jQuery 属性(新手学习随笔)
    node.js 创建第一个应用
  • 原文地址:https://www.cnblogs.com/lsf90/p/6040929.html
Copyright © 2020-2023  润新知