Consul - 介绍

Consul是一款基于Hashicorp的工具,用于在您的基础架构中发现和配置各种不同的服务.它基于Golang而建立.构建Consul的核心原因之一是维护分布式系统中存在的服务. Consul提供的一些重要功能如下:

  • 服务发现 : 使用DNS或HTTP,应用程序可以轻松找到他们所依赖的服务.

  • 健康检查状态 : 它可以提供任意数量的健康检查.服务发现组件使用它来远离不健康的主机.

  • 密钥/值存储 : 它可以将Consul的分层键/值存储用于任何目的,包括动态配置,功能标记,协调,领导者选举等.

  • 多数据中心部署 :  Consul支持多个数据中心.它用于构建额外的抽象层以扩展到多个区域.

  • Web UI :  Consul为其用户提供了一个漂亮的Web界面,使用它可以很容易地使用和管理领事中的所有功能.

服务发现

服务发现是Consul最重要的功能之一.它被定义为检测使用其发现服务的不同服务和网络协议.服务发现的使用对于分布式系统来说是一个福音.这是当今大型行业面临的主要问题之一,随着分布式系统在其环境中的发展.

与Etcd和Zookeeper的比较

当我们查看此域中的其他服务发现工具时,我们有两个流行的选项.软件行业的一些主要参与者过去一直在使用它.这些工具是 Etcd Zookeeper .

让我们考虑下表来比较每个工具的不同方面.我们还将了解每个内部使用的内容.

属性ConsulEtcdZoo Keeper
用户界面可用
RPC可用可用
运行状况检查HTTP APIHTTP APITCP
键值3一致性模式良好的一致性强一致性
令牌系统可用
语言GolangGolangJava

领事 - 成员和代理商

可以将Consul成员定义为部署consul集群的不同代理和服务器模式的列表. Consul为我们提供了一个命令行功能,使用该功能我们可以轻松列出与领事相关的所有代理.

Consul代理是Consul的核心流程.代理维护成员资格信息,注册服务,运行检查,响应查询等.任何代理都可以以两种模式之一运行:客户端服务器.这两种模式可以根据他们在使用领事时决定的角色使用.领事代理通过向我们提供以下列出的信息来提供帮助.

  • 节点名称 :  ;这是该机器的主机名.

  • 数据中心 : 配置代理程序以运行的数据中心.必须将每个节点配置为向其数据中心报告.

  • 服务器 : 它指示代理是在服务器还是客户端模式下运行.服务器节点参与共识仲裁,存储集群状态和处理查询.

  • 客户端地址 : 它是代理用于客户端接口的地址.它包括HTTP,DNS和RPC接口的端口.

  • Cluster Addr : 它是用于群集中Consul Agent之间通信的地址和端口集.所有其他节点都必须可以访问此地址.

在下一章中,我们将了解Consul的体系结构.