节点发生故障时服务发现缓存更新

时间:2016-08-30 19:04:34

标签: caching dns mesos service-discovery grpc

我正在尝试为我的系统采用服务发现机制。我有一堆节点,他们将通过 gRpc 相互通信。因为在一些像 Mesos 这样的框架中,一个新的节点在失败之后会出现可能有一个不同的IP地址和一个不同的端口,我正在考虑使用服务发现所以每个节点都可以拥有一个与节点故障无关的集群配置。

我目前的选择是使用DNS或强一致的键值存储,如etcd或zookeeper。 我的问题是要了解健康节点中名称映射的缓存如何在节点经历向下和向上时失效和更新。

我能想到的可能方式是:

  1. 当健康节点检测到连接问题时,它们会使
    无效 他们的缓存条目立即并继续拉动DNS注册表 直到节点再次可连接。
  2. 当节点出现故障时,DNS注册表会将事件广播到所有健康节点。似乎这可能需要来自DNS注册表的心跳。
  3. 每个节点中的缓存都有一个TTL字段,在TTL间隔内,每个节点都必须忍受节点故障,直到缓存条目到期并再次从DNS注册表中提取。
  4. 我的问题是哪个选项(你可以更多名字)是现实的情况以及为什么它比其他选择更好?

0 个答案:

没有答案