Consul vs. Serf

Consul vs. Serf

Serf是一个节点发现和编排工具,是迄今为止讨论的唯一工具,它建立在最终一致的gossip模型上,没有集中式服务器。它提供了许多功能,包括组成员身份,故障检测,事件广播和查询机制。但是,Serf不提供任何高级功能,例如服务发现,运行状况检查或键/值存储。 Consul是一个提供所有这些功能的完整系统。

Consul中使用的内部gossip协议实际上由Serf库提供支持:Consul利用成员资格和故障检测功能,并在它们的基础上添加服务发现。相比之下,Serf的发现功能处于节点级别,而Consul提供服务和节点级抽象。

Serf提供的健康检查水平非常低,仅表明代理人是否还活着。 Consul对此进行了扩展,以提供丰富的运行状况检查系统,除了任意主机和服务级别检查外,还可以处理活动。运行状况检查与中央目录集成,运营商可以轻松查询以深入了解集群。

Serf提供的成员资格属于节点级别,而Consul则侧重于服务级别抽象,将单个节点映射到多个服务。这可以使用标签在Serf中进行模拟,但它更加有限,并且不提供有用的查询接口。 Consul还使用强一致的目录,而Serf使用的是最终一致。

除了服务级别抽象和改进的运行状况检查之外,Consul还为多个数据中心提供键/值存储和支持。 Serf可以在WAN上运行但性能下降。 Consul使用多个gossip池,因此可以保留LAN上的Serf性能,同时仍然可以使用Serf通过WAN来连接多个数据中心。

Consul在其用法方面具有主张,而Serf是一种更灵活和通用的工具。在CAP术语中,Consul使用CP体系结构,有利于可用性的一致性。 Serf是一个AP系统,牺牲了可用性的一致性。这意味着如果中央服务器无法形成法定人数,则Consul无法运行,而Serf将在几乎所有情况下继续运行。

猜你喜欢

转载自blog.csdn.net/longgeqiaojie304/article/details/85259284
今日推荐