「Consul」- 啥玩意儿啊?

  CREATED BY JENKINSBOT

Consul是目前较为流行的一个「服务发现」以及「配置工具」。

Consul能够承担包括服务注册与发现、健康检查(health check)以及键值对存储等,同时还支持多个数据中心。

如上图所示,基于Consul的微服务一般都是集群。集群由一个个的「Consul Agent」组成。在这些「Consul Agent」里面,分为两种角色:Server、Client。Consul是基于Raft协议实现的,这些Server里包含了Raft中的Leader以及Follower。而Client则只是向这些Server进行键值对的读/写。

服务注册/反注册机制

当我们在本地启动「Consul Agent」之后,我们可以通过Consul的Restful Api(curl -request PUT http://consul/v1/agent/service/register)向Consul Agent注册服务信息,提交服务的端口号、IP地址、健康检查的方式。随后,这个Client就按照配置中的周期以及方式执行健康检查。当健康检查失败的时候,就会像Server Agent发送服务不可用的消息,这个服务就会被Consul标记为不可用了。

我们也能够通过Get方法请求相同的地址来获取当前Agent中注册的所有服务信息。

参考文献

浅谈服务发现