You need to enable JavaScript to run this app.
导航

集成方案概述

最近更新时间2023.09.19 19:23:05

首次发布时间2023.07.21 15:05:19

本文介绍如何在通过 HTTP API 接入火山引擎移动解析(HTTPDNS)时,获取最低的解析延时,同时保障您的业务安全。

说明

推荐您使用客户端 SDK。如果您由于实际情况限制无法接入客户端 SDK,您可以使用 HTTP API。

您可以使用动态 IP 地址或域名调用 HTTP API。

方案一:通过动态 IP 地址调用 HTTP API

您可以参见以下步骤集成 HTTP API。

步骤一:获取最佳的 HTTPDNS 服务端 IP 地址

说明

该 API 处于公测阶段,目前默认关闭。如果您希望体验该功能,可以 提交工单 联系我们开启该 API。

调用 获取最佳的 HTTPDNS 服务端 IP 地址 API,获取最佳的 HTTPDNS 服务端 IP 地址。

GET https://httpdns.volcengineapi.com/svc_meta?account_id={account_id}?sign={sign}?svc_meta_ts={svc_meta_ts}?timestamp={timestamp}

HTTPDNS 服务端会返回以下结果。

{
  "svc_meta": {
    "main_domains": [
      "1.1.1.1",
      "2.2.2.2",
      "3.3.3.3"
    ],
    "backup_domains": [
      "4.4.4.4"
    ]
  },
  "ts": 1676777261000,
  "update_interval_min": 30
}

步骤二:向 IP 地址发送直连请求解析域名

您需要通过 IP 直连请求 调用 解析一个或多个域名 API,按照以下顺序向 获取最佳的 HTTPDNS 服务端 IP 地址 API 返回的 IP 地址发送轮询请求。

  1. 首先,您需要依次向 main_domains 中的主 IP 地址尝试发送请求。从第一个 IP 地址开始,到最后一个 IP 地址结束。建议每个 IP 地址尝试两次。您可以根据实际需要确定尝试的次数。
  2. 如果 main_domains 中的主 IP 地址都无法返回解析结果,您需要尝试 backup_domains中的备 IP 地址。从第一个备 IP 地址开始,到最后一个备 IP 地址结束。
GET https://{ip_address}/resolve?domain={domain}?account_id={account_id}?sign={sign}?timestamp={timestamp}?type={type}?ip={ip}?appid={appid}

如果解析成功,您可以在返回值的 ips 参数中获取解析结果。

{
    "cip": "1.1.1.1",
    "host": "www.example.com", 
    "ips": [                
        "1.1.1.1",          
        "2.2.2.2",
        "3.3.3.3",
        "4.4.4.4",
        "5.5.5.5",
        "6.6.6.6"
    ],
    "ttl": 52             

}

降级策略

如果所有的 IP 地址都无法正常返回解析结果,您需要准备以下降级策略:

  • 放弃 IP 直连请求,通过 httpdns.volcengineapi.com 域名调用 解析一个或多个域名 API。
  • 如果通过域名依然无法获取解析结果,您需要通过 Local DNS 服务器获取解析结果。

方案二:通过域名或固定 IP 地址调用 HTTP API

您需要通过以下任意一种方式调用 解析一个或多个域名 API:

  • 使用 httpdns.volcengineapi.com 作为请求域名
  • 使用固定 IP 地址发起直连请求。

    说明

    固定 IP 地址接入功能处于公测阶段,暂不对外公开。您可以 提交工单 联系我们获取固定 IP 地址

降级策略

如果通过域名或固定 IP 地址依然无法获取解析结果,您需要通过 Local DNS 服务器获取解析结果。

集成注意事项

定时获取最新的 HTTPDNS 服务端 IP 地址

如果您使用动态 IP 地址,建议您按照 获取最佳的 HTTPDNS 服务端 IP 地址 返回的 update_interval_min 参数(单位为分钟)定时获取最新的服务端 IP 地址。

管理缓存的解析记录

您还可以通过缓存解析记录的方式减少向 HTTPDNS 服务端发送请求的次数。解析记录会过期。因此,您需要在解析记录过期时,调用 解析一个或多个域名 API 获取新的解析记录并刷新您的缓存。

客户端 SDK 已经实现了完善的解析记录过期管理和缓存管理。您可以参见 工作原理