动态设置 GSLB 域名

更新时间: 2025/05/28 09:17:47

本文介绍如何为播放器自定义设置 GSLB(Global Server Load Balance)服务器域名,实现降低播放前的预处理耗时,以及如何配置备用域名以提高连接成功率。

版本变更

  • 自 3.4.3 版本起,支持自行配置 GSLB 服务器域名。
  • 自 3.6.0 版本起,支持设置备用 GSLB 服务器域名。

适用场景

在播放器拉流过程中,手动指定 URL 之后,播放器首先通过请求 GSLB 服务器将 URL 映射成相对用户物理位置最优的拉流 URL,然后与该 URL 建连拉取视频数据。

由于默认的 GSLB 服务器地址对用户来说可能不是最优选择,为了优化首个请求的耗时时间,您可以自行配置主备 GSLB 服务器域名,进一步降低播放前的预处理耗时,确保在网络波动或区域性服务器故障时仍能正常播放,提高直播和点播的连接成功率。

sequenceDiagram

actor 开发者

par 默认配置
用户播放器 ->> GSLB 服务器: 请求最优的拉流地址
GSLB 服务器 -->> 用户播放器: 返回最优的拉流地址
用户播放器 ->> CDN 服务器: 请求拉流
CDN 服务器 -->> 用户播放器: 返回拉流
end

par 自定义配置
开发者 ->> 用户播放器: 自定义设置 GSLB 服务器域名
用户播放器 ->> GSLB 服务器: 请求拉流地址
GSLB 服务器 -->> 用户播放器: 返回已设置的拉流地址
用户播放器 ->> CDN 服务器: 请求拉流
CDN 服务器 -->> 用户播放器: 返回拉流
end

par 备用域名配置
开发者 ->> 用户播放器: 设置备用 GSLB 服务器域名
用户播放器 ->> GSLB 服务器: 请求拉流地址(失败)
用户播放器 ->> 备用 GSLB 服务器: 请求拉流地址
备用 GSLB 服务器 -->> 用户播放器: 返回拉流地址
用户播放器 ->> CDN 服务器: 请求拉流
CDN 服务器 -->> 用户播放器: 返回拉流
end

以上流程适用于非中国大陆地区的服务区域。网易云信已在中国大陆服务区域默认配置备用域名,您无需额外设置。

示例代码

设置主 GSLB 域名

设置海外 GSLB 服务器地址,可以参考以下示例代码:

JavaSDKOptions config = new SDKOptions();
config.GSLBDomain = "gslb-sea.yunxinvcloud.com"; //如果是海外应用,配置此域名
PlayerManager.init(getApplicationContext(), config);

设置备用 GSLB 域名

设置备用 GSLB 域名,以支持智能域名切换功能。当播放器无法连接到默认的 GSLB 域名时,会自动尝试备用服务器,提高直播和点播的连接成功率。

  • 直接使用 NEMediaPlayer 设置

    如果不使用 PlayerKit,可以直接调用 NEMediaPlayer 的接口设置备用域名:

    Java//如果是海外应用,配置此域名
    ArrayList<String> gslbDomainsBackUp = new ArrayList<>();
    gslbDomainsBackUp.add("gslb-sea.live.netease.im");
    NEMediaPlayer.setGSLBDomainsBackup(gslbDomainsBackUp);
    
  • 使用 PlayerKit 设置

    如果使用 PlayerKit,可以在初始化时同时配置主域名和备用域名:

    Java//如果是海外应用,配置此域名
    ArrayList<String> gslbDomainsBackUp = new ArrayList<>();
    gslbDomainsBackUp.add("gslb-sea.live.netease.im");
    SDKOptions config = new SDKOptions();
    config.gslbDomain = "gslb-sea.yunxinvcloud.com";
    config.gslbDomainsBackUp = gslbDomainsBackUp;
    PlayerManager.init(getApplicationContext(), config);
    
此文档是否对你有帮助?
有帮助
去反馈
  • 版本变更
  • 适用场景
  • 示例代码
  • 设置主 GSLB 域名
  • 设置备用 GSLB 域名