Consul使用一个网络层成像系统来计算集群中节点的网络坐标。这个坐标允许使用一种非常简单的计算来估计任何两个节点之间的往返时间。这对于很多应用都是有用的,比如寻找某个请求节点最近的服务节点或者故障转移到最近的数据中心。
所有这些都是使用Serf库提供。Serf的网络成像系统基于“Vivaldi: A Decentralized Network Coordinate System”,在其他研究基础上做了一些改进。更多的细节见Serf网络坐标。
Network Coordinates in Consul
Consul中有几种网络坐标表现形式:
- consul rtt 命令查询任意两个节点间的往返时间。