# mypsrecord **Repository Path**: le2020/mypsrecord ## Basic Information - **Project Name**: mypsrecord - **Description**: 易用性ps - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README DNS 配置问题排查报告 📋 问题概述 域名:fit.hjjy.uat.hxbtest 应用场景:TCP 长连接应用,需要实现 DNS 双活高可用 期望行为:域名解析返回多个 A 记录,支持 Java InetAddress.getAllByName() 获取所有 IP 实际行为:getAllByName() 只返回一个 IP,无法实现客户端故障转移 🔍 详细问题描述 1. DNS 查询行为异常 dig fit.hjjy.uat.hxbtest A +short 每次只返回一个 IP 但多次查询会随机返回不同的 IP(有时是 A,有时是 B) 期望:一次性返回所有 A 记录,如: 192.168.1.10 192.168.1.11 2. Java API 兼容性问题 使用 InetAddress.getAllByName("fit.hjjy.uat.hxbtest") 只返回一个 IP 期望:返回所有可能的 IP 地址数组 影响:无法实现客户端故障转移和负载分散 3. 高可用架构需求 应用需要连接后端多台服务器实现高可用 当一台服务器故障时,客户端应能自动连接到其他健康服务器 当前 DNS 配置无法支持此需求 🧪 已执行的验证步骤 DNS 查询验证: bash 基本查询 dig fit.hjjy.uat.hxbtest A +short 完整记录查询 dig fit.hjjy.uat.hxbtest ANY +short 权威服务器查询 dig fit.hjjy.uat.hxbtest NS +short Java 代码验证: java InetAddress[] addrs = InetAddress.getAllByName("fit.hjjy.uat.hxbtest"); // 实际返回长度为 1,期望长度为 2+ 🎯 需要确认的技术点 1. DNS 记录配置 请确认 fit.hjjy.uat.hxbtest 是否配置了多条 A 记录 每条 A 记录的具体 IP 地址 2. DNS 服务器功能 是否支持一次性返回所有 A 记录 getAllByName() API 期望获取所有记录的行为是否支持 DNS 轮询算法(随机/轮换)的实现方式 3. 网络环境限制 是否有网络策略限制只返回特定 IP 客户端网络环境是否影响 DNS 解析结果 🚀 建议解决方案 1. DNS 配置优化 配置多条 A 记录指向后端服务器 确保 DNS 服务器支持返回完整记录集 2. 兼容性测试 验证 InetAddress.getAllByName() 在当前 DNS 环境下的行为 确保 Java 应用能正确获取所有 IP 地址 3. 高可用架构确认 确认当前 DNS 配置是否满足 TCP 长连接高可用需求 如无法满足,建议考虑负载均衡器方案 📞 需要提供的信息 请提供以下信息以便进一步排查: 1. 当前 DNS A 记录配置详情 2. DNS 服务器类型和版本 3. 是否支持 Java getAllByName() 完整记录返回 4. 是否有网络策略或负载均衡规则影响解析 5. 推荐的高可用 DNS 配置方案 紧急程度:中等,影响应用高可用性 影响范围:所有使用该域名的 TCP 长连接客户端 业务影响:无法实现自动故障转移,存在单点故障风险