前提
从刚工作就开始接触 Consul,中途自己也有两个项目和 Consul 有关,后面有机会再讲讲,网上关于这个的资料还比较少。因为明天有 Consul 的技术分享,所以自己今天下午在官网看了下相关的介绍。
介绍
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件, 由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。Consul 支持健康检查, 并允许 HTTP 和 DNS 协议调用 API 存储键值对。
命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品。一致性协议采用 Raft 算法, 用来保证服务的高可用, 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制。
下载安装
去官网下载:https://www.consul.io/downloads.html
得到一个 zip 压缩包
在你想要安装的位置解压就行,只有一个 consul.exe 文件(我的解压位置是:D:\software)
设置环境变量(在 path 中新增一条):
D:\software
cmd 命令窗口启动:
1 | consul agent -dev |
consul 自带 UI 界面,打开网址:http://localhost:8500 ,可以看到当前注册的服务界面。
Consul 优势
- 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft.
- 支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等. zookeeper 和 etcd 均不提供多数据中心功能的支持.
- 支持健康检查. etcd 不提供此功能.
- 支持 http 和 dns 协议接口. zookeeper 的集成较为复杂, etcd 只支持 http 协议.
- 官方提供web管理界面, etcd 无此功能.
综合比较, Consul 作为服务注册和配置管理的新星, 比较值得关注和研究.
最后
本文首发于:zhisheng的博客
地址为:http://www.54tianzhisheng.cn/2017/12/27/consul-install/ 转载请注明地址!