简介
功能简介
consul提供的服务主要包括服务发现、健康检查、kv存储、集群管理、跨数据中心。
服务发现
服务发现本质就是个名字服务。就像共享内存,只要shmkey知道了,所有的进程都能够访问这块内存的值。通过DNS和HTTP接口使用“服务发现”功能。
健康检查
健康检查,故名思议就是定期的去检查机器或者服务的当前状态。consul提供了一条简约而不简单的路子,那就是通过定期运行脚本去检查。脚本可以是由用户自定义的任意shell脚本,但是原理都是根据脚本的返回值去判断机器或服务是否健康,只有脚本返回值为0时才代表健康。
key/value存储
为了服务周到,consul还提供了key/value存储功能。并且逻辑存储的方式和mongodb差求不多,是一种层次化的逻辑存储。例如mongodb的key格式可以为country.province.city,对应的consul的key格式则为country/province/city。通过HTTP接口使用“数据库”功能。
多数据中心
consul不仅能够在同一个局域网内构成集群,集群与集群之间还能够跨网段。集群内或者集群之间都是通过gossip协议来监控节点健康状态的,节点与节点之间其他业务都是通过RPC。
web ui
web ui是consul的管理服务,提供一个可视化管理consul功能的界面,访问方式也是HTTP。
架构简介
client:客户端,无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群。
server:服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯,通过广域网与其他数据中心通讯。每个数据中心的 server 数量推荐为 3 个或是 5 个。