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

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代理。发现其他服务或获取/设置密钥/值数据不需要运行代理。代理负责检查节点上的服务以及节点本身的运行状况。
代理与一到多个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
上一篇:Ubuntu更换镜像源,更快升级和更新软件


下一篇:计算机毕业设计Java校园墙系统(系统+源码+mysql数据库+lw文档)