您现在的位置是:首页 > 文章详情

Consul介绍:什么是Consul & 与其他软件的比较

日期:2019-11-06点击:750

Consul介绍

什么是consul

Consul是一个服务网格解决方案,提供了一个功能齐全的控制台、具有服务注册发现、配置中心和分段功能。Consul的每一个特性既可以根据需要单独使用,又可以一起使用来构建完成的服务网格。Consul拥有一个数据层且支持代理和本地集成模型。Consul提供了一个简易的内置代理以方便开箱即用,同事也支持第三方代理集成例如[Envoy](https://www.envoyproxy.io)。 

关键特性:

 1. 服务发现:客户端可以通过Consul注册一个服务,例如 api 或 mysql,并且其他客户端可以通过Consul发现服务提供者。通过DNS或HTTP,应用程序可以方便的找到她们依赖的其他服务。 2. 健康检查:Consul客户端可以提供任意数量的健康状况检查,这些检查要么与给定的服务相关(“web服务器是否返回200 OK”),要么与本地节点相关(“内存利用率是否低于90%”)。管理员可以使用这些信息监视群集运行状况,服务发现组件也可以使用此信息将请求路由到远离不健康的主机。 3. KV存储:应用程序可以将Consul的KV存储用于任何目的,包括动态配置、功能标记、协调、leader选举等。并提供了简易的HTTP API使其易于使用。 4. 安全机制:Consul可以生成和颁发服务的TLS证书,以建立TLS连接。原型(Intentions)是定义允许哪些服务进行通信。使用可以随时变更的Intentions,而不是使用复杂的网络拓扑和静态防火墙规则,可以轻松地管理服务分段。 5. 多数据中心:Consul提供开箱即用的多数据中心支持。这意味着Consul的用户不必担心构建额外的抽象层来应对多区域中心扩展。 Consul的设计对DevOps社区和应用开发人员都非常友好,非常适合现代的、弹性的基础设施。 

基础架构:

 Consul是一个分布式,高可用系统。本节只覆盖Consul的基本概念,更多的细节请[点击](https://www.consul.io/docs/connect/intentions.html) 

架构图

 Consul提供服务的每个节点都运行着一个consul代理。发现其他服务或获取/设置密钥/值数据不需要运行代理。代理负责检查节点上的服务以及节点本身的运行状况。 代理与一到多个Consul服务对话。Consul服务负责数据存储和复制,这些服务选举出一个leader(raft)。虽然Consul可以在一台服务器上运行,但建议使用3到5台服务器避免鼓掌导致数据丢失。每个数据中心建议搭建一套Consul集群。 基础设施中的组件通过任何Consul服务器或其代理可以访问到其他服务或检点。代理会将请求路由到Consul服务器。 每一个数据中心运行着一个Consul集群。当发起一个跨数据中心服务发现或配置变更,本地Consul服务器会转发请求到远程数据中心并返回结果。 

vs. 其他软件

类型 CAP 集成 KV存储 健康检查 安全 多数据中心支持 一致性
zookeeper CP SDK 支持 长连接,keepalive ACL NO Paxos
doozerd CP sdk 支持 -- -- NO Paxos
etcd CP http/grpc 支持 连接心跳 https支持(弱) NO raft
consul CP http/dns 支持 服务状态,内存,硬盘等 https/acl 支持 raft
原文链接:https://yq.aliyun.com/articles/726295
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章