dns之如果 DNS 出现故障,Zookeeper 会发生什么情况
我正在研究 Zookeeper 以及它最有值(value)的方面之一是高可用性。最近,我们的内部 DNS 出现问题,对 Zookeeper 和依赖它的其他服务产生了负面影响。
我不太了解 DNS、静态/动态 ip、DNS 缓存和查找,但是处理 Zookeeper 和 DNS 问题的最佳实践是什么?
请您参考如下方法:
正在运行的 Zookeeper 集群不应受到 DNS 问题的影响。集群中的每个服务器实例都是一个 JVM 进程。 JVM 永远缓存 DNS 条目,或者直到重新启动。一旦 Zookeeper 服务器节点启动并位于集群中,它们就不应再使用 DNS。理论上,您可以将 Java 安全选项配置为永远不缓存 DNS,但这不是 ZK 情况下的默认设置。
服务器启动期间可能会出现问题。如果 Zookeeper 服务器实例无法解析集群中其他节点的名称,它将拒绝服务请求。由于集群配置通常很小且大部分是静态的,您可以直接在配置中使用 IP 端点并避免任何可能的问题。
如果您有 Java 客户端,同样的 DNS 缓存推理也适用于它们。
在 DNS 中断期间,某些客户端可能无法解析 Zookeeper 端点。这在技术上并不违反 Zookeeper 的高可用性属性。 Zookeeper 服务仍然可用,但无法访问,因为系统关键路径上的其他内容发生故障。 Zookeeper 不会对此提供保护。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



