consul配置与实战
2017-09-17 本文已影响493人
aoho
上一篇提到,项目用的分布式服务发现与注册组件是consul,这篇文章主要来讲下consul组件在项目中的应用以及相关介绍。本文以官方文档为主要参考consul文档。
1. consul介绍
consul是一个服务管理软件,主要功能如下:
- 支持多数据中心下,分布式高可用的,服务发现和配置共享。
- consul支持健康检查,允许存储键值对。
- 一致性协议采用
Raft
算法,用来保证服务的高可用。 - 成员管理和消息广播采用
GOSSIP
协议,支持ACL访问控制。
1.1 服务注册与发现
服务注册是一个服务将其位置信息在“中心注册节点”注册的过程。该服务一般会将它的主机IP地址以及端口号进行注册,有时也会有服务访问的认证信息,使用协议,版本号,以及关于环境的一些细节信息。
而服务发现可以让一个应用或者组件发现其运行环境以及其它应用或组件的信息。用户配置一个服务发现工具就可以将实际容器跟运行配置分离开。常见配置信息包括:ip、端口号、名称等。
在传统情况下,当出现服务存在于多个主机节点上时,都会使用静态配置的方法来实现服务信息的注册。
而当在一个复杂的系统里,需要较强的可扩展性时,服务被频繁替换时,为避免服务中断,动态的服务注册和发现就很重要。
服务注册与发现的组件有很多,如Zookeeper、Etcd等。既可用于服务间的协调,同时又可用于服务的注册。
1.2 Consensus Protocol - Raft
Consul使用Consensus协议Raft提供一致性(Consistency)。本文只是简单介绍在consul中的一致性,后面专门一篇写raft。
微信公众号