开发者社区 问答 正文

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

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

展开
收起
真的很搞笑 2024-03-19 21:14:18 117 分享 版权
阿里云 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 条回答
写回答
取消 提交回答
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
还有其他疑问?
咨询AI助理