开发者社区 问答 正文

应用研发平台EMAS服务ip怎么获取?

应用研发平台EMAS服务ip怎么获取?image.png

展开
收起
真的很搞笑 2024-03-19 21:14:18 57 分享 版权
阿里云 AI 助理回答

要获取应用研发平台 EMAS 的服务 IP 地址,您可以按照以下步骤操作。这些步骤适用于不希望集成官方 SDK 的场景,而是通过 HTTPDNS 提供的 HTTP API 自行实现域名解析的情况。


1. 准备启动 IP 列表

在应用中内置一份默认的 HTTPDNS 启动 IP 地址列表。这些启动 IP 是调度服务的入口,用于获取最新的服务 IP 地址列表。
重要提示: - 启动 IP 应写死在 App 中,以确保服务可用性。 - 阿里云会提供多个启动 IP,建议至少准备 2-3 个备用 IP,以便在请求失败时切换使用。


2. 调用调度接口获取服务 IP 列表

通过启动 IP 调用调度接口,动态获取最近且健康的服务节点 IP 地址列表。调度接口的具体说明如下:

调度接口 URL

https://{启动IP}/{account_id}/ss
  • {启动IP}:从内置的启动 IP 列表中选择一个 IP 或域名。
  • {account_id}:您的 HTTPDNS 服务专属 ID,可在 HTTPDNS 控制台获取。

请求方式

  • GET 请求

可选参数

为了支持异常排查,可以添加以下可选参数: - sid:sessionId,长度为 12 位,用于标记一次独立的 App 生命周期。 - net:网络类型(如 5g、4g、wifi 等)。 - bssid:WiFi 环境的 bssid,用于标记不同的 WiFi 网络。

返回结果

  • 成功响应:HTTP 状态码为 200,返回 JSON 格式的服务 IP 地址列表。
  • 失败响应:HTTP 状态码为 4xx 或 5xx,返回错误码和描述信息。

3. 使用服务 IP 调用解析服务

从调度接口返回的服务 IP 地址列表中,选择一个 IP 地址调用解析服务接口,完成域名解析。
注意: - 建议使用 IP 池轮转机制,当某个 IP 访问失败时,自动切换到下一个 IP 进行重试。


4. 定期更新服务 IP 列表

为了保证服务 IP 列表的有效性,建议在以下场景中主动更新服务 IP 列表: - App 冷启动时:每次应用启动时调用调度接口更新服务 IP 列表。 - 网络环境切换时:当用户切换网络(如从 Wi-Fi 切换到移动数据)时,重新获取服务 IP 列表。 - 定时更新:每 8 小时至少更新一次服务 IP 列表。 - 解析失败时:如果当前服务 IP 列表中的所有 IP 都无法解析,立即调用调度接口获取新的服务 IP 列表。


5. 故障转移策略

如果所有 HTTPDNS 服务 IP 均不可用,建议降级使用 Local DNS(即操作系统原生 DNS 链路)。
示例代码: - Android 端(OkHttp 网络库)

List<InetAddress> result = okhttp3.Dns.SYSTEM.lookup(host);
  • iOS 端:保持原有请求即可,无需进行 Host 替换或请求拦截。

6. 注意事项

  • 避免固定使用服务 IP:长期固定使用可能导致稳定性隐患,建议动态获取并更新服务 IP 列表。
  • 异步处理:建议使用异步方式调用解析接口,避免阻塞业务流程。
  • 持久化缓存:启用持久化缓存功能,加快应用启动时的域名解析速度。

通过以上步骤,您可以高效地获取并维护 EMAS 的服务 IP 地址列表,从而保障域名解析的稳定性和高可用性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答