Consul
Consul由HashiCorp 开发,本站内容来源于Consul官方网站,是其英文介绍和文档的非官方中文翻译。
- 让服务发现和配置管理更容易。
- 分布式、高可用、跨数据中心。
服务发现
Consul让服务注册和服务发现(通过DNS和HTTP接口)更加简单,甚至对于外部服务(例如SaaS)注册也一样。
故障检测
通过健康检查,服务发现可以防止请求被路由到不健康的主机,并且可以使服务容易断开(不再提供服务)。
多数据中心
Consul不需要复杂的配置即可简便的扩展到多个数据中心,查找其它数据中心的服务或者只请求当前数据中心的服务。
键值存储
灵活的键值存储,提供动态配置、特征标记、协作、leader选举等功能,通过长轮询实现配置改变的即时通知。
DNS查询接口
使用Consul内置的DNS Server查找服务,支持现有的基础设施而不需要任何代码上的修改。
admin@hashicorp: dig web-frontend.service.consul. ANY ; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;web-frontend.service.consul. IN ANY ;; ANSWER SECTION: web-frontend.service.consul. 0 IN A 10.0.3.83 web-frontend.service.consul. 0 IN A 10.0.1.109 admin@hashicorp:
键值存储
Consul提供一个分层的键值存储,通过一个简单的HTTP API进行访问,管理配置从来没有如此简单。
admin@hashicorp: curl -X PUT -d 'bar' http://localhost:8500/v1/kv/foo true admin@hashicorp: curl http://localhost:8500/v1/kv/foo [ { "CreateIndex": 100, "ModifyIndex": 200, "Key": "foo", "Flags": 0, "Value": "YmFy" } ] admin@hashicorp: echo "YmFy" | base64 --decode bar admin@hashicorp: