写点什么

17 Prometheus 之服务发现介绍

  • 2022 年 1 月 17 日
  • 本文字数:853 字

    阅读完需:约 3 分钟

17 Prometheus之服务发现介绍

基于 Consul 的服务发现是一种使用网络的服务发现机制和配置工具,是使用 Go 语言开发的,部署安装较为简单,具有分布式、高可用性和极高的可扩展性。它提供了以下几个关键功能。

  • 服务发现:Consul 通过 HTTP API 和 DNS 进行服务注册和服务发现。对于外部服务(如 SaaS 提供者)也可以注册。

  • 健康检查:Consul 支持对各类服务运行状态的健康检查工作,能够迅速向管理员告警集群中的任何问题,可以防止将流量路由到问题或故障主机,可动态监视服务运行状况并适当更新服务注册表。

  • 键/值存储:键/值存储可以灵活地进行存储动态配置、功能标记、协调和领导者选举等。简单的 HTTP API 使其易于在任何地方使用。

  • 多数据中心:Consul 支持单一数据中心,可扩展以支持多个数据中心,并且无须复杂的配置。

  • 服务分割:通过自动 TLS 加密和基于身份的授权实现安全的服务间通信。


Gossip 是分布式系统中被广泛使用的协议,协议本身简单且通信性能好,主要用于实现分布式节点或者进程之间的信息交换,最终状态都达成一致。常用于 P2P 的通信和实现应用层多播。


Consul 服务注册提供了两种注册方法:一种是定义配置文件服务注册方法,即在配置文件中定义服务来进行注册;一种是 HTTP API 服务注册方法,即在启动后由服务自身通过调用 API 进行自我注册。


DNS SRV 是 DNS 资源记录中的一种记录类型,用来指定服务地址和服务端口,并且可以设置每个服务地址的优先级和权重。访问服务的时候,本地的 DNS resolver 从 DNS 服务器查询到一个地址列表,根据优先级和权重,从中选取一个地址作为本次请求的目标地址。SRV 的记录格式如下:

SRV 的记录格式说明如下。

  • -service:服务名称,前缀“_”是为防止与 DNS Label(普通域名)冲突。

  • proto:服务使用的通信协议,通常是 TCP 或 UDP 协议。

  • name:此记录有效域名,以.(点)结束。

  • TTL:标准 DNS TTL 字段,设置缓存有效时间。

  • class:标准 DNS class 字段,例如 IN。

  • priority:该记录优先级,数值越小优先级越高,范围 0~65535。

  • weight:该记录的权重,数值越大权重越高,范围 0~65535。

  • port:服务使用的端口号。

  • target:提供服务的主机地址名称,以.(点)结束。


发布于: 刚刚阅读数: 3
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
17 Prometheus之服务发现介绍