领事 - 简介


Consul 是一个基于 Hashicorp 的工具,用于发现和配置基础设施中的各种不同服务。它基于 Golang 并构建于 Golang 之上。构建 Consul 的核心原因之一是维护分布式系统中存在的服务。Consul 提供的一些重要功能如下。

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

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

  • 键/值存储-它可以将Consul的分层键/值存储用于多种目的,包括动态配置、功能标记、协调、领导者选举等。

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

  • Web UI - Consul 为用户提供了一个漂亮的 Web 界面,使用它可以轻松使用和管理 consul 中的所有功能。

服务发现

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

与Etcd和Zookeeper的比较

当我们查看该领域的其他服务发现工具时,我们有两种流行的选择。软件行业的一些主要参与者过去一直在使用它。这些工具是EtcdZookeeper

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

特性 领事 动物园管理员
用户界面 可用的
远程过程调用 可用的 可用的
健康检查 HTTP API HTTP API 传输控制协议
核心价值 3 种一致性模式 一致性好 一致性强
代币系统 可用的
语言 戈兰 戈兰 爪哇

领事 - 会员和代理人

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

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

  • 节点名称- 这是机器的主机名。

  • Datacenter − The datacenter in which the agent is configured to run. Each node must be configured to report to its datacenter.

  • Server − It indicates whether the agent is running in server or client mode. Server nodes participates in the consensus quorum, storing cluster state and handling queries.

  • Client Addr − It is the address used for client interfaces by the agent. It includes the ports for the HTTP, DNS, and RPC interfaces.

  • Cluster Addr − It is the address and the set of ports used for communication between Consul Agents in a cluster. This address must be reachable by all other nodes.

In the next chapter, we will understand the architecture for Consul.