标签:consul
Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。
它具有很多优点。包括: 基于 raft 协议,比较简洁; 支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows
从 www.consul.io/downloads.html 下载二进制文件到本地即可。
consul 在每个节点上都只需要相同的单一二进制文件,部署十分简单。
组成 consul 集群的每个成员上都要运行一个 agent,可以通过 consul agent
命令来启动。agent 可以运行在 server 状态或者 client 状态。自然的,运行在 server 状态的节点被称为 server
节点;运行在 client 状态的节点被称为 client 节点。
负责转发所有的 RPC 到 server 节点。本身无状态,且轻量级,因此,可以部署大量的 client 节点。
负责组成 cluster 的复杂工作(选举、状态维护、转发请求到 lead),以及 consul 提供的服务(响应 RCP 请求)。考虑到容错和收敛,一般部署 3 ~ 5 个比较合适。
第一个节点:
$ consul agent -data-dir=/tmp/consul -server -bootstrap-expect 1 -bind $IP
其他节点:
$ consul agent -data-dir=/tmp/consul -server -join $IP
通过 $IP:8500/v1/catalog/nodes
可以访问到注册上的节点。
基于 Serf 实现的 gossip 协议,负责成员、失败探测、事件广播等。通过 UDP 实现各个节点之间的消息。分为 LAN 上的和 WAN 上的两种情形。
可以监听主机上的容器信息,并把有暴露端口的容器注册到给定的 consul/etcd 等服务上。
可以监听 consul 服务的内容变化,并根据变化实时更新应用的配置文件。
转载请注明:http://blog.csdn.net/yeasy/article/details/47277031
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:consul
原文地址:http://blog.csdn.net/yeasy/article/details/47277031