Consul 教程学习手册

收录于 2023-04-20 00:10:05 · English · بالعربية · Español · हिंदीName · 日本語 · Русский язык · 中文繁體

Consul 是Devops世界中一个重要的服务发现工具。本教程涵盖了 Consul 及其设置和部署的深入工作知识。本教程旨在帮助新用户设置 consul,开发 consul 的高级知识并学习一些围绕 consul 构建的有趣项目。最后,希望读者能够理解本教程,并在日常工作中使用 consul。本教程将为您提供 Consul 的快速入门,并让您熟悉其各种组件。
Consul 是一个基于 Hashicorp 的工具,用于在您的基础设施中发现和配置各种不同的服务。它基于并构建在 Golang 之上。构建 Consul 的核心原因之一是维护分布式系统中存在的服务。 Consul 提供的一些重要功能如下。
服务发现-使用 DNS 或 HTTP,应用程序可以轻松找到它们所依赖的服务。 健康检查状态-它可以提供任意数量的健康检查。服务发现组件使用它来路由流量,使其远离运行状况不佳的主机。 键/值存储-它可以将 Consul 的分层键/值存储用于任何目的,包括动态配置、功能标记、协调、领导选举等。 多数据中心部署-Consul 支持多个数据中心。它用于构建额外的抽象层以扩展到多个区域。 Web UI-Consul 为其用户提供了一个漂亮的 Web 界面,使用它可以轻松使用和管理 consul 中的所有功能。

服务发现

服务发现是 Consul 最重要的特性之一。它被定义为检测不同的服务和发现服务所使用的网络协议。服务发现的使用为分布式系统带来了福音。这是当今大型行业面临的主要问题之一,随着分布式系统在其环境中的进步。

与 Etcd 和 Zookeeper 的对比

当我们查看该领域中的其他服务发现工具时,我们有两个流行的选择。软件行业的一些主要参与者过去一直在使用它。这些工具是 EtcdZookeeper
让我们考虑下表来比较每个工具的不同方面。我们还将了解他们每个人在内部使用的内容。
属性 Consul Etcd Zoo Keeper
User Interface Available
RPC Available Available
Health Check HTTP API HTTP API TCP
Key Value 3 种一致性模式 良好的一致性 强一致性
Token System Available
Language Golang Golang Java

Consul-成员和代理人

Consul 成员可以定义为部署 consul 集群所使用的不同代理和服务器模式的列表。 Consul 为我们提供了一个命令行功能,我们可以使用该功能轻松列出与 consul 关联的所有代理。
Consul agent 是 Consul 的核心进程。代理维护成员资格信息、注册服务、运行检查、响应查询等。任何代理都可以以两种模式之一运行: 客户端服务器。这两种模式可以根据使用 consul 时决定的角色来使用。Consul代理通过向我们提供以下信息来提供帮助。
节点名称-这是机器的主机名。 Datacenter-配置代理运行的数据中心。每个节点都必须配置为向其数据中心报告。 Server-表示代理是在服务器模式还是客户端模式下运行。服务器节点参与共识仲裁、存储集群状态和处理查询。 Client Addr-它是代理用于客户端接口的地址。它包括 HTTP、DNS 和 RPC 接口的端口。 Cluster Addr-它是用于集群中 Consul 代理之间通信的地址和端口集。所有其他节点必须可以访问此地址。
在下一章中,我们将了解 Consul 的架构。