IM 即时通讯
Android
动态与公告
IM UIKit 更新日志
NIM SDK 开发版更新日志
NIM SDK 稳定版更新日志
新手接入指南
产品介绍
简介
主要功能
产品优势
功能介绍
账号集成与登录
多端登录与互踢策略
群组功能
聊天室功能
聊天室标签功能
圈组功能
质量数据监控台
海外数据中心
IM平滑迁移方案
接口及业务限制
体验 Demo
下载 SDK 与 Demo 源码
快速开始
跑通 IM Demo 源码
实现单聊消息收发(不含 UI)
跑通圈组 Demo 源码
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能概览
快速集成 IM UIKit
组件导入
初始化
界面跳转
自定义用户信息
全局配置
会话列表相关
集成会话列表界面
会话列表事件监听
自定义会话列表界面 UI
会话列表 API 概览
会话消息相关
集成会话界面
会话界面事件监听
实现音视频通话
实现地理位置消息功能(含 UI)
实现自定义消息发送(含 UI)
自定义会话界面 UI
会话消息 API 概览
通讯录相关
集成通讯录界面
自定义通讯录界面 UI
通讯录界面事件监听
通讯录 API 概览
UIKit 功能实现方案
消息回复实现方案
UIKit 版本升级说明
系统兼容相关
IM UIKit 常见问题排查
IM UIKit API 概览
不含 UI 集成
使用说明
集成 SDK
初始化
登录相关
登录 IM
多端登录与互踢
登出 IM
消息相关
消息概述
消息收发
自定义消息收发
消息配置选项
NOS 存储场景
广播消息收发
消息已读回执
消息撤回
消息重发与转发
消息更新
消息过滤
语音消息处理
插入本地消息
历史消息
最近会话
服务端会话服务
用户资料
用户关系
在线状态订阅
系统通知
系统通知概述
内置系统通知管理
内置系统通知未读数
自定义系统通知收发
Android 离线推送
实现离线推送
配置消息的推送属性
设置群消息强制推送
设置推送全局免打扰
设置多端推送策略
集成小米推送
集成华为推送
集成荣耀推送
集成 OPPO 推送
集成 vivo 推送
集成魅族推送
集成谷歌推送(FCM)
消息提醒
实现消息提醒
配置消息提醒功能
设置群消息强制提醒
设置消息提醒文案
定制通知栏显示信息
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
聊天室
圈组功能
圈组概述
登录管理
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
实时互动频道
频道分组
频道分组黑白名单
频道未读数管理
搜索服务器和频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
用户定制权限
频道分组身份组
自定义权限项
成员权限查询与判定
身份组相关查询
圈组订阅机制
圈组消息相关
图解圈组消息流转
圈组消息收发
消息发送配置项
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
会话消息回复(Thread)
圈组快捷评论
获取频道最后一条消息
查询历史消息
查询@我的消息
圈组消息缓存
圈组消息搜索
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组离线推送
圈组内容审核
圈组相关抄送
圈组第三方回调
圈组各端接口命名差异
反垃圾(内容审核)
聊天扩展
接入第三方机器人
其他
最佳实践
IM 登录最佳实践
IM 应用隐私合规
聊天室重要消息投递
API 参考
Android SDK API
Android SDK 状态码/错误码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
开通聊天室功能
配置应用客户端标识
添加推送证书
常见问题
FAQ
错题集
Android 端推送问题排查
第三方推送厂商的限制说明
服务协议

海外数据中心

更新时间: 2023/05/05 15:44:38

云信提供国内和海外数据中心,支持用户的国内外相关业务。

本节主要介绍海外数据中心的接入流程、国内外节点的迁移流程以及相关说明。

海外数据中心接入流程

1. 为接入海外数据中心的应用创建 App Key

2. 使用海外数据中心的专属 API 域名

3. 配置客户端 SDK 中的 link 域名和 LBS 域名

  • 接入海外数据中心的应用需使用 8.10.0 版本以上的 SDK ,该版本 SDK 支持融合存储。

  • 当前只有使用 S3 存储时,所有图片/文件才存储于对应的数据中心。

为接入海外数据中心的应用创建 App Key

  1. 登录网易云信控制台

  2. 在左侧导航栏中找到应用,并单击创建

  3. 根据自身业务属性和需求,指定节点的服务区域,并填写其他基本信息。

    服务区域决定了该应用下产品的数据处理和存储,一旦指定服务区域,则不支持修改。若需要改变服务区域,则需要创建新的应用

    IM 服务区域分为国内和海外,目前海外仅有新加坡节点,后续将拓展其他海外节点。

    1.png

  4. 单击创建

    创建应用后,可以在左侧导航栏中查看。

  5. 单击 App Key 管理,获取该应用的 App Key。

目前云信控制台支持用户配置的仅包含 IM 服务区域,其余 SKU 产品(RTC、直播、点播)的服务区域不支持自主配置,若有需要,请联系您的商务经理进行沟通。

使用海外数据中心的专属 API 域名

目前云信服务器的默认 API 域名为api.netease.im,属于国内数据中心,而海外数据中心则需要使用海外指定的专属域名。

如:新加坡的 API 域名是api-sg.netease.im

用户在对接云信服务器时需要自行替换 API 域名。

在海外数据中心, SDK 的部署方式默认为私有化部署,需要用户按照私有化方式配置 link 域名和 LBS 域名。

如:新加坡的 link 默认域名是link-sg.netease.im:7000;新加坡的 weblink 默认域名是weblink-sg.netease.im:443

LBS 域名使用lbs.netease.im

Web 端

初始化 SDK 时,在NIM.getInstance中添加 LBS 和 link 域名参数的配置。示例如下:

var nim = window.SDK.NIM.getInstance({
      "lbsUrl": "https://lbs.netease.im/lbs/webconf",
      "defaultLink": "weblink-sg.netease.im:443",
    })

相关参数说明如下:

参数 类型 说明
NIM.getInstance
Object
IM 的初始化构造函数。
lbsUrl
String
LBS 地址,默认为云信公网提供的链接。SDK 连接时会向 LBS 地址请求得到 Socket 连接地址。填 HTTP/HTTPS 地址。
defaultLink
String
Socket 备用地址,当 LBS 请求失败时,尝试直接连接 Socket 备用地址。填"IP/Host:PORT"。

iOS 端

初始化 SDK 时,在NIMServerSetting中配置 LBS 和 link 域名参数,NIMServerSetting需要开发者自己创建并注入。示例如下:

setting.lbsAddress =  @"https://lbs.netease.im/lbs/conf.jsp";
setting.linkAddress =  @"link-sg.netease.im:7000";

相关参数说明如下:

参数 类型 说明
NIMServerSetting
Object
配置云信服务器相关信息。
lbsAddress
String
LBS 地址,默认为云信公网提供的链接。SDK 连接时会向 LBS 地址请求得到 Socket 连接地址。填 HTTP/HTTPS 地址。
linkAddress
String
Socket 备用地址,当 LBS 请求失败时,尝试直接连接 Socket 备用地址。填"IP/Host:PORT"。

Android 端

初始化 SDK 时,通过SDKOptions配置私有化的服务器地址中的 LBS 和 link 域名相关信息。示例如下:

serverConfig.defaultLink = "link-sg.netease.im:7000"; 
serverConfig.lbs = "https://lbs.netease.im/lbs/conf.jsp"; 
serverConfig.nosUploadLbs = "http://wannos.127.net/lbs"; 
serverConfig.nosUploadDefaultLink = "https://nosup-hz1.127.net"; 
serverConfig.nosDownloadUrlFormat = "{bucket}-nosdn.netease.im/{object}"; 
serverConfig.nosUpload = "nosup-hz1.127.net"; 
serverConfig.nosSupportHttps = true;

相关参数说明如下:

参数 类型 说明
SDKOption
Object
可自定义的 SDK 选项,用来进行 SDK 初始化配置。
defaultLink
String
IM 默认的 link 服务器地址,当 LBS 不可用时先连接该地址。填"IP/Host:PORT"。
lbs
String
IM LBS 服务器地址,通过它获取 IM link 地址信息。填 HTTP/HTTPS 地址。
nosUploadLbs
String
NOS 上传 LBS 服务器地址。填 HTTP/HTTPS 地址。
nosUploadDefaultLink
String
NOS上传默认的 link 服务器地址,当 NOS LBS 不可用时先连接该地址。填 HTTP/HTTPS 地址。
nosDownloadUrlFormat
String
NOS 下载地址拼接模板,用于拼接最终得到的下载地址。
nosUpload
String
NOS 上传服务器主机地址(仅 nosSupportHttps=true 时有效,用作 HTTPS 上传时的域名校验及 http header host 字段填充)。填 Host 地址。
nosSupportHttps
boolean
NOS 上传是否需要支持 HTTPS 。

PC 端

用户需要自行创建nim_server.conf文件,放至 SDK 的同级目录,SDK 会自动识别。nim_server.conf文件的内容,请参考以下示例:

{
    "lbs":"https://lbs.netease.im/lbs/conf.jsp",
    "lbs.backup":[
        "https://lbs.netease.im/lbs/conf.jsp"
    ],
    "link":"link-sg.netease.im:7000",
    "nos_lbs":"https://wanproxy.127.net/lbs?version=1.0",
    "nos_uploader":"http://nosup-hz1.127.net",
    "nos_uploader_host":"nosup-hz1.127.net",
    "nos_downloader":"{bucket}.nosdn.127.net/{object}",
    "https_enabled":true
}

在使用前,请先校验 json 格式是否正确。

增强版 Web / uni-app

初始化 SDK 时,添加 LBS 和长连接域名参数的配置。

增强版 Web
new NIM({

  "lbsUrls": ["https://lbs.netease.im/lbs/webconf"],
  "linkUrl": "weblink-sg.netease.im:443"
  
})
uni-app
getInstance({

  "lbsUrls": ["https://lbs.netease.im/lbs/webconf"],
  "linkUrl": "weblink-sg.netease.im:443"
  
})

相关参数说明如下:

参数 类型 说明
NIMInitializeOptions
Object
IM 的初始化构造函数。
lbsUrls
String
LBS 地址,默认为云信公网提供的链接。SDK 连接时会向 LBS 地址请求得到 Socket 连接地址。填 HTTP/HTTPS 地址。
linkUrl
String
Socket 备用地址,当 LBS 请求失败时,尝试直接连接 Socket 备用地址。填"IP/Host:PORT"。

Flutter 端

初始化 SDK 时,通过 NIMServerConfig 配置私有化的服务器地址中的 LBS 和 link 域名相关信息。示例如下:

NIMServerConfig config = NIMServerConfig(
    defaultLink: "link-sg.netease.im:7000",
    lbs: "https://lbs.netease.im/lbs/conf.jsp",
    nosUploadLbs: "http://wannos.127.net/lbs",
    nosUploadDefaultLink: "https://nosup-hz1.127.net",
    nosDownloadUrlFormat: "{bucket}-nosdn.netease.im/{object}",
    nosUpload: "nosup-hz1.127.net",
    nosSupportHttps: true);
if (Platform.isAndroid) {
  final directory = await getExternalStorageDirectory();
  options = NIMAndroidSDKOptions(
      appKey: appKey,
      shouldSyncStickTopSessionInfos: true,
      serverConfig: config,
      sdkRootDir:
          directory != null ? '${directory.path}/NIMFlutter' : null);
} else if (Platform.isIOS) {
  final directory = await getApplicationDocumentsDirectory();
  options = NIMIOSSDKOptions(
    appKey: appKey,
    shouldSyncStickTopSessionInfos: true,
    sdkRootDir: '${directory.path}/NIMFlutter',
    apnsCername: 'ENTERPRISE',
    serverConfig: config,
    pkCername: 'DEMO_PUSH_KIT',
  );
}

相关参数说明如下:

参数 类型 说明
NIMServerConfig
Object
配置专属服务器的地址。
defaultLink
String
IM 默认的 link 服务器地址,当 LBS 不可用时先连接该地址。填"IP/Host:PORT"。
lbs
String
IM LBS 服务器地址,通过它获取 IM link 地址信息。填 HTTP/HTTPS 地址。
nosUploadLbs
String
NOS 上传 LBS 服务器地址。填 HTTP/HTTPS 地址。
nosUploadDefaultLink
String
NOS上传默认的 link 服务器地址,当 NOS LBS 不可用时先连接该地址。填 HTTP/HTTPS 地址。
nosDownloadUrlFormat
String
NOS 下载地址拼接模板,用于拼接最终得到的下载地址。
nosUpload
String
NOS 上传服务器主机地址(仅 nosSupportHttps=true 时有效,用作 HTTPS 上传时的域名校验及 http header host 字段填充)。填 Host 地址。
nosSupportHttps
boolean
NOS 上传是否需要支持 HTTPS 。

目前仅支持 Android 和 iOS 平台。

国内节点迁移至海外节点

对于已上线的国内节点应用,如果您有海外业务需求,可将应用迁移至海外数据中心。

迁移说明

云信支持将已有的国内应用数据、用户信息、好友关系、会话列表、群组数据、超大群组数据、聊天室数据、漫游、历史消息、离线消息等内容,平滑迁移至对应的海外数据中心。

  • 用户信息:已经在云信获取过 Token 的所有用户信息支持迁移至海外数据中心,包括用户 ID、用户名、用户头像等
  • 群组数据:群基本信息、群成员信息
  • 超大群组数据:超大群基本信息、超大群成员信息
  • 聊天室数据:聊天室基本信息、聊天室固定成员信息
  • 历史消息数据:针对应用发送过的历史消息支持迁移至海外数据中心,包含:单聊、群聊、聊天室消息
  • 离线消息数据:针对用户未收取过的离线消息,支持迁移至海外数据中心

迁移准备

您需要向云信申请公有云专属服务,由云信负责部署专属云服务(具体费用可咨询商务经理)。

公有云专属服务主要用于迁移海外节点过程中为保证业务不受公有云流量干扰而产生的隔离资源。部署的时间范围以实际迁移时间为准,全部迁移完成后,可取消该服务部署。

迁移流程

  1. 联系云信商务经理,申请将指定的 AppKey 迁移至对应海外数据中心,并与云信技术支持确认迁移范围。

  2. 对于用户迁移前的国内数据中心公有云环境(api.netease.im),云信将部署专属云服务,并提供专属云对应的 API 域名和 link 域名。

  3. 用户在对接云信服务器时需要将云信 API 公有云域名替换为专属云域名

  4. 将云信客户端 SDK 的 link 公有云域名替换为专属云域名,并发布客户端新版本。

  5. 云信对迁移后的海外数据中心(api-sg.netease.im)部署专属云服务,然后将国内公有云数据中心的数据,迁移至海外数据中心。

  6. 升级应用客户端。从国内迁移至海外数据中心,因涉及修改客户端 SDK 中的 link 服务地址,所以应用客户端必须强制升级到新的版本,才能连接到迁移后的数据中心。老版本将无法使用。

  7. 用户需要与云信商务协商正式迁移的时间节点。协商好后,云信正式开始流量迁移。建议在线上业务低峰期时执行。

海外数据中心相关说明

  • 接入海外数据中心的 App Key 的数据均存储于海外,包括但不限于:

    • 账号信息(accid、昵称、头像等)
    • 群组、聊天室等
    • 好友、黑名单等
    • 历史消息等
    • 图片/文件存储
    • 其他
  • 国内数据中心和海外数据中心的关系:

    • 应用级别的信息全局共享,如 App Key 信息、功能开通关闭(包括云信侧功能,安全通等)。
    • 应用内的信息存储于所属数据中心。
  • 安全通

    • 海外数据中心的安全通使用了对应的海外易盾能力,数据不回国。
    • 支持多语种的内容安全审核。
  • 国内数据中心和海外数据中心的 link、weblink、chatlink、chatwl、以及 API 域名不互通,如果连接错误,会返回 403。

  • 为了方便客户接入和提高接入效果,海外数据中心相关域名会添加国内加速代理和海外其他地区的加速代理,如:新加坡 API 域名api-sg.netease.im

    • 在国内会解析到我们的国内 bgp 入口,但是所有数据最终都存储在新加坡。
    • 在美国地区会解析到美国的加速入口,但是所有数据最终都存储在新加坡。

数据迁移常见问题

Q:App 是否必须强制升级?

A:是,云信从 8.10.0 开始才支持海外节点且迁移需要更换为海外域名,所以必须强制升级到新的版本,才能连接到指定数据中心。

Q:漫游消息是否支持迁移?

A:支持,在正式迁移前 7 天,云信会开启双写,将漫游消息双写写到指定数据中心。

Q:存储在云信服务端的历史消息是否支持迁移?

A: 支持,需要和云信商务说明历史消息迁移时间范围。

Q:是否支持从海外节点迁移至国内节点?

A:不支持。

Q:迁移过程中服务是否不可用?

A:是的,在切换的瞬间所有客户端会强制下线,触发重连到海外单元。切换期间有分钟级服务不可用,正常不超过一分钟。

Q:是否支持历史图片和文件的迁移?

A:不支持。 历史图片和文件不会迁移,还是存储在国内数据中心,但是不影响访问。

此文档是否对你有帮助?
有帮助
我要吐槽
  • 海外数据中心接入流程
  • 为接入海外数据中心的应用创建 App Key
  • 使用海外数据中心的专属 API 域名
  • 配置客户端 SDK 中的 link 域名和 LBS 域名
  • Web 端
  • iOS 端
  • Android 端
  • PC 端
  • 增强版 Web / uni-app
  • Flutter 端
  • 国内节点迁移至海外节点
  • 迁移说明
  • 迁移准备
  • 迁移流程
  • 海外数据中心相关说明
  • 数据迁移常见问题