Eureka是一个服务发现工具。该体系结构主要是客户端/服务器,每一个数据中心有一组Eureka服务器,一般每一个可用区域一个。一般Eureka的客户使用嵌入式SDK来注册和发现服务。对于非本地集成的客户,使用功能区边框等透过Eureka透明地发现服务。html
Eureka提供了一个弱一致的服务视图,使用尽力而为复制。当客户端向服务器注册时,该服务器将尝试复制到其余服务器,但不提供保证。服务注册的生存时间(TTL)较短,要求客户端对服务器心存感激。不健康的服务或节点将中止心跳,致使它们超时并从注册表中删除。发现请求能够路由到任何服务,因为尽力而为的复制,这些服务可能会致使陈旧或丢失数据。这个简化的模型容许简单的群集管理和高可扩展性。ios
领事提供了一套超级功能,包括更丰富的健康检查,关键/价值存储以及多数据中心意识。Consul须要每一个数据中心都有一套服务器,以及每一个客户端的代理,相似于使用像Ribbon这样的边车。Consul代理容许大多数应用程序成为Consul不知情者,经过配置文件执行服务注册并经过DNS或负载平衡器sidecars发现。服务器
Consul提供强大的一致性保证,由于服务器使用Raft协议复制状态 。Consul支持丰富的健康检查,包括TCP,HTTP,Nagios / Sensu兼容脚本或基于Eureka的TTL。客户端节点参与基于八卦的健康检查,该检查分发健康检查工做,而不像集中式心跳检测那样成为可扩展性挑战。发现请求被路由到选举出来的领事领导,这使他们默认状况下强烈一致。容许陈旧读取的客户端使任何服务器均可以处理他们的请求,从而实现像Eureka这样的线性可伸缩性。ide
Consul强烈的一致性意味着它能够做为领导选举和集群协调的锁定服务。Eureka不提供相似的保证,而且一般须要为须要执行协调或具备更强一致性需求的服务运行ZooKeeper。工具
Consul提供了支持面向服务的体系结构所需的一系列功能。这包括服务发现,还包括丰富的运行情况检查,锁定,密钥/值,多数据中心联合,事件系统和ACL。Consul和consul-template和envconsul等工具生态系统都试图尽可能减小集成所需的应用程序更改,以免须要经过SDK进行本地集成。Eureka是一个更大的Netflix OSS套件的一部分,该套件预计应用程序相对均匀且紧密集成。所以,Eureka只解决了一小部分问题,但愿ZooKeeper等其余工具能够一块儿使用。spa
在CAP中,Consul使用CP体系结构,有利于实现可用性的一致性。代理