介绍:
Consul 是由 HashiCorp 基于 Go 语言实现的开源项目,可用于分布式系统的注册中心和配置中心的功能。
对应官方文档地址:https://www.consul.io/intro
Consul 的核心功能如下:
① 服务发现(Service Discovery) :Consul 提供了通过 DNS 或者 HTT P接口的方式,来注册服务和发现服务。一些外部的服务通过 Consul,很容易的找到它所依赖的服务。
② 健康检测(Health Checking) :Consul 的 Client 提供了健康检查的机制,可以避免流量被转发到有故障的服务上。
注册中心 = ① + ②
③ Key/Value 存储(KV Store) :应用程序可以根据自己的需要使用 Consul 提供的 Key/Value 存储。Consul 提供了简单易用的 HTTP 接口,结合其他工具可以实现动态配置、功能标记、领袖选举等等功能。
配置中心 = ③
④ 多数据中心(Multi Datacenter) :Consul 支持开箱即用的多数据中心。这意味着用户不需要建立额外的抽象层,让业务扩展到多个区域。
架构图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210315103424117.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxMTQwODY1,size_16,color_FFFFFF,t_70#pic_center)
**Consul Cluster 集群由部署和运行了 Consul Agent 的节点组成。而 Server 和 Client 只是 Agent 的两种角色,即上图中的每一个 Server 或是 Client 都是一个 Agent。**
下载、解压、环境变量、验证:
wget https://releases.hashicorp.com/consul/1.9.4/consul_1.9.4_linux_amd64.zip
unzip consul_1.5.1_linux_amd64.zip -d /usr/local/bin
cat << EOF >> /etc/profile
export CONSUL_HOME=/usr/local/bin/consul
export PATH=$PATH:CONSUL_HOME
EOF
source /etc/profile
consul -v
#输出:
#Consul v1.9.4
#Revision 10bb6cb3b
#Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking #to compatible agents)
#启动
consul agent -dev
#访问:http://127.0.0.1:8500 inux可以配置下nginx 代理,这里不做介绍
#集群建立,看别人家的博客即可,链接如下
https://book-consul-guide.vnzmi.com/06_setup_cluster.html
#Consul 与 ZooKeeper、Etcd、Eureka 等等组件的差异点
建议参考官方文档:https://www.consul.io/docs/intro/vs