DaLei@home:~$

Consul学习笔记



本文介绍Consul的基本信息,包括Consul是什么,它能够解决什么问题,和已经存在相关的软件进行对比,以及怎么去使用Consul

What is Consul?

  • Consul是什么

    Consul是一个服务网格解决方案,包括服务发现、配置和分割功能。这些功能可以根据需要独立使用或者一起使用简历一个完整的服务网格。Consul要求一个数据层,支持代理和本地集成模式。Consul自带代理,这样就可以在Consul外面工作,同时Consul支持第三方代理集成Envoy等

Consul支持关键特性

  1. 服务发现

    Consul客户端可以注册一个服务,例如api或者mysql,其他的客户端可以使用Consul去发现服务的提供者。使用DNS或者HTTP,应用可以简单地发现他们依赖的服务。

  2. 健康检查

    Consul客户端提供任意数量的健康检查,包括一个给定的服务(是否返回200),或者一个本地的节点(内存使用率超过90%),这些信息用于监控集群的健康状况和转移没有正常工作的主机的流量。

  3. KV存储

    应用可以使用Consul的分层key-value存储用于一些目的,包括动态配置,功能标记,协调,领导选举等。可以通过简单的http api使用

  4. 安全服务通信

    Consul 可以生成和分发TLS证书用于简历TLS链接。Intentions可以用来定义哪些服务允许通信,Intentions可以简单地分割服务,实时改变而不是使用复杂的网络拓步图和静态的防火墙规则

  5. 多数据中心

    Consul支持多数据中心。

Basic Architecture of Consul

  • Consul基础架构

    Consul 是一个分布式高可用的系统。

    每一个提供服务的节点运行一个Consul agent. 运行agent对于发现其他服务或者设置获取key/value数据不是必要的。agent负责检查服务节点和自身节点的健康检查。

    agent同一个或者多个server通信,server存储数据和备份。server之间会选举一个领导。

    Cousul的多server可以当成一个单server提供功能,3-5个server是被推荐的,避免失败导致数据丢失。每一个数据中心建议有一个server集群。你的基础设施需要发现其他服务或者节点的时候可以查询任何的Consul server或者Consul agent, Agent 会自动转发查询到server

    每一个数据中心运行一个Consul server集群,当有一个需要跨越数据中兴的服务发现或者配置请求,本地的Consul server会转发给远程数据中心,然后返回结果

Consul vs Other Software

Getting Started