📅  最后修改于: 2020-11-01 03:03:03             🧑  作者: Mango
Consul是基于Hashicorp的工具,用于发现和配置基础架构中的各种不同服务。它基于Golang构建。构建Consul的核心原因之一是维护分布式系统中存在的服务。 Consul提供的一些重要功能如下。
服务发现-使用DNS或HTTP,应用程序可以轻松找到它们依赖的服务。
健康检查状态-它可以提供任意数量的健康检查。服务发现组件使用它来将流量路由到运行状况不佳的主机之外。
密钥/值存储库-可以将Consul的分层密钥/值存储库用于多种目的,包括动态配置,功能标记,协调,领导者选举等。
多数据中心部署-Consul支持多个数据中心。它用于构建其他抽象层以扩展到多个区域。
Web UI -Consul为用户提供了漂亮的Web界面,通过它可以轻松使用和管理consul中的所有功能。
服务发现是Consul最重要的功能之一。它定义为检测不同服务和发现服务所使用的网络协议。服务发现的使用是分布式系统的福音。随着环境中分布式系统的发展,这是当今大型工业所面临的主要问题之一。
当我们查看此域中的其他服务发现工具时,我们有两个流行的选择。过去,软件行业的一些主要参与者一直在使用它。这些工具是Etcd和Zookeeper 。
让我们考虑下表以比较每种工具的不同方面。我们还将了解他们每个人在内部使用的内容。
Properties | Consul | Etcd | Zoo Keeper |
---|---|---|---|
User Interface | Available | ||
RPC | Available | Available | |
Health Check | HTTP API | HTTP API | TCP |
Key Value | 3 Consistency modes | Good Consistency | Strong Consistency |
Token System | Available | ||
Language | Golang | Golang | Java |
领事成员可以定义为部署领事群集的不同代理和服务器模式的列表。领事为我们提供了命令行功能,通过它可以轻松列出与领事相关的所有代理。
领事代理是领事的核心过程。代理维护成员资格信息,注册服务,运行检查,响应查询等。任何代理都可以以下两种模式之一运行: Client或Server 。可以根据使用领事时决定的作用来使用这两种模式。领事代理通过向我们提供以下信息为您提供帮助。
节点名称-这是计算机的主机名。
数据中心-代理配置在其中运行的数据中心。必须将每个节点配置为向其数据中心报告。
服务器-指示代理是在服务器模式还是客户端模式下运行。服务器节点参与共识仲裁,存储集群状态并处理查询。
客户端地址-这是代理用于客户端接口的地址。它包括HTTP,DNS和RPC接口的端口。
Cluster Addr-这是用于集群中Consul代理之间通信的地址和端口集。所有其他节点都必须可以访问此地址。
在下一章中,我们将了解Consul的体系结构。