更新时间: 2020-08-24
# 服务介绍
开发者注册融云后,可根据自身业务情况,选择适合的数据中心创建应用、集成 SDK。目前融云支持国内、国外数据中心:
国内数据中心:北京
海外数据中心:新加坡
如何选择数据中心?
客户业务主要在国内,用户及消息数据均需要存储在国内,并且应用在国内上线、运营,暂不涉及海外业务,此类客户可选择使用国内数据中心。
客户业务主要在国外,应用直接在海外上线服务于当地用户。此类客户可选择接入融云海外数据中心。
提示:如客户的 App 用户遍布全球,跨国用户互通频繁通,对延迟时间、数据安全敏感的业务。可接入融云全球通信网络服务,可使用户在海外访问国内延迟从 2000ms 缩短至多 190ms,查看详情 (opens new window)
# 国内数据中心
# 集成说明
融云 SDK 默认连接国内数据中心,开发者在集成时,不需要做数据中心配置操作。详细可查看各平台集成文档。
# 迁移海外
应用已经在国内上线,由于业务发展或其他原因,希望将应用从中国数据中心迁移到海外数据中心,且将已有的用户数据、群组数据、离线消息等内容,平滑迁移到海外数据中心。
一、迁移数据说明
客户在使用融云过程中,产生的数据都可以迁移到海外数据中心,涉及的数据如下:
用户信息:已经在融云获取过 Token 的所有用户信息支持迁移到海外的数据中心,包括用户 ID、用户名、用户头像
群组成员关系:应用下所有群组的成员关系
离线消息数据:针对用户未收取过的离线消息,支持迁移到海外数据中心
融云服务端存储的历史消息数据目前不支持迁移到海外数据中心,迁移到海外数据中心的应用,无法获取迁移前的服务器历史消息。
二、迁移前置工作
客户需要向融云申请国内公有云专属服务
,并部署离线存储专属服务。
此服务用于将用户未收取的离线消息独立存储,以便后期数据迁移时整体迁移到海外数据中心的离线存储专属服务中。部署的时间范围为 7 天,融云离线消息默认存储时长,全部迁移完成后,可取消此服务部署。
融云实现的工作如下:
为客户部署国内公有云环境,专属服务,并部署离线存储专属服务
为客户在海外数据中心部署专属服务,并部署离线存储专属服务
将国内公有云数据中心数据迁移到海外数据中心
三、客户迁移工作
客户需要进行以下工作完成迁移:
向融云商务申请将指定的 AppKey 迁移到海外。
协商服务正式迁移时间节点,建议在线上业务低峰期时执行。
将 App Server 调用的融云 Server API 地址改为海外数据中心 API 地址,融云海外数据中心:
api-sg01.ronghub.com;
客户端 SDK 设置海外数据中心的导航服务器地址及媒体服务器地址,融云 SDK(Android、iOS、Web)默认配置连接的是中国数据中心。查看设置文档
# 常见问题
App 是否必须强制升级?
是,因为涉及修改 SDK 中导航服务地址,所以必须强制升级到新的版本,才能连接到海外数据中心。
用户未接收的离线消息是否支持迁移?
支持,在正式迁移前 7 天,部署离线消息的专属服务,即可将未读消息迁移到海外数据中心。
存储在融云服务端的历史消息是否支持迁移?
不支持,融云服务端存储的历史消息数据目前不支持迁移到海外数据中心,迁移到海外数据中心的应用,无法获取迁移前的服务器历史消息。
# 海外数据中心
# 资源投入
一、全球核心接入节点
亚太地区:东京、新加坡、香港、孟买、首尔、悉尼
欧洲:法兰克福、爱尔兰、伦敦、米兰、巴黎、斯德哥尔摩
美州:弗吉尼亚北部、俄亥俄州、俄勒冈州、加利福尼亚北部、圣保罗
非州:开普敦
中东:巴林
二、全球边缘接入节点
北美洲
边缘站点:弗吉尼亚州阿什本(6 个)、佐治亚州亚特兰大(6 个)、马萨诸塞州波士顿(3 个)、伊利诺伊州芝加哥(6 个)、德克萨斯州达拉斯/沃思堡(6 个)、科罗拉多州丹佛(2 个)、加利福尼亚州海沃德、俄勒冈州希尔斯伯勒(3 个)、德克萨斯州休斯顿(4 个)、佛罗里达州杰克逊维尔、加利福尼亚州洛杉矶(5 个)、佛罗里达州迈阿密(4 个)、明尼苏达州明尼阿波利斯、魁北克省蒙特利尔、纽约州纽约(2 个)、新泽西州纽瓦克(7 个)、加利福尼亚州帕洛阿尔托、宾夕法尼亚州费城(2 个)、亚利桑那州菲尼克斯(2 个)、犹他州盐湖城、加利福尼亚州圣何塞(2 个)、华盛顿州西雅图(3 个)、安大略省多伦多(2 个)
区域性边缘缓存:弗吉尼亚、俄亥俄、俄勒冈
欧洲
边缘站点:荷兰阿姆斯特丹(2 个)、希腊雅典、德国柏林(2 个)、比利时布鲁塞尔、罗马尼亚布加勒斯特、匈牙利布达佩、丹麦哥本哈根、爱尔兰都柏林、德国杜塞尔多夫、德国法兰克福(10 个)、德国汉堡、芬兰赫尔辛基、葡萄牙里斯本、英国伦敦(9 个)、西班牙马德里(2 个)、英国曼彻斯特(2 个)、法国马赛、意大利米兰(3 个)、德国慕尼黑(2 个)、挪威奥斯陆、意大利巴勒莫、法国巴黎(5 个)、捷克共和国布拉格、意大利罗马、保加利亚索非亚、瑞典斯德哥尔摩(3 个)、奥地利维也纳、波兰华沙、瑞士苏黎世(2 个)
亚洲
边缘站点:印度班加罗尔(3 个)、印度金奈(2 个)、中国香港(3 个)、印度海德拉巴(4 个)、印度加尔各答、马来西亚吉隆坡(2 个)、印度孟买(3 个)、菲律宾马尼拉、印度新德里(4 个)、日本大阪、韩国首尔(4 个)、新加坡(4 个)、中国台湾台北(3 个)、日本东京(16 个)
区域性边缘缓存:印度孟买、新加坡、韩国首尔、日本东京
澳大利亚
边缘站点:墨尔本、珀斯、悉尼(4 个)
区域性边缘缓存:悉尼
南美洲
边缘站点:哥伦比亚波哥大;阿根廷布宜诺斯艾利斯;巴西里约热内卢(2 个);智利圣地亚哥;巴西圣保罗(2 个)
区域性边缘缓存:巴西圣保罗
中东
边缘站点:阿拉伯联合酋长国迪拜、阿拉伯联合酋长国富查伊拉、巴林麦纳麦、以色列特拉维夫
非洲
边缘站点:南非开普敦、南非约翰内斯堡、肯尼亚内罗毕
中国
边缘站点:北京、深圳、上海、中卫
# 专属功能
海外数据中心模式下,为更好的服务海外用户,融云 SDK 提供了以下功能:
# 创建应用
注册开发者后台 (opens new window),创建应用时“数据中心”选择“海外”,该应用的 AppKey 即可在海外环境使用,对接融云海外数据中心。

提示:如应用的研发团队在国内,应用在海外上线,为方便研发调试,可以在融云开发者后台创建一个使用国内数据中心的应用,专门测试使用。测试没有问题后,再创建一个使用海外数据中心的应用,获取生产环境 AppKey,在海外上线使用。
# 集成说明
融云 SDK 默认配置连接的是国内数据中心,如果要接入海外数据中心,需要修改 SDK 导航域名和文件服务器地址。
# Android
在 SDK 初始化 init 之前,请先调用 setServerInfo 方法设置海外数据中心的导航域名和文件服务器地址:
导航服务器地址(naviServer):navsg01.cn.ronghub.com
媒体服务器地址(fileServer):upload.qiniup.com
代码示例:
/** * 设置 海外 数据中心的导航服务器和媒体服务器地址。 * 此方法要在 {@link #init(Context, String)} 前使用 * * @param naviServer 海外数据中心的导航服务器地址。 * @param fileServer 海外数据中心的媒体服务器地址,即文件和图片的上传地址。使用独立数据中心时必须填写。 */ public static void setServerInfo(final String naviServer, final String fileServer) { if (TextUtils.isEmpty(naviServer)) { RLog.e(TAG, "setServerInfo naviServer should not be null."); throw new IllegalArgumentException("naviServer should not be null."); } RongIMClient.setServerInfo(fileServer, fileServer); }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
# iOS
在 SDK 初始化 init 之前,请先调用 setServerInfo 方法设置海外数据中心的导航域名和文件服务器地址:
导航服务器地址(naviServer):navsg01.cn.ronghub.com
媒体服务器地址(fileServer):upload.qiniup.com
代码示例:
/*! 设置 海外 数据中心导航服务器和上传文件服务器信息 @param naviServer 海外 数据中心导航服务器地址,具体的格式参考下面的说明 @param fileServer 海外 数据中心文件服务器地址,具体的格式参考下面的说明 @return 是否设置成功 @warning 仅限 海外 数据中心使用,使用前必须先联系商务开通。必须在SDK init之前进行设置。 @discussion naviServer必须为有效的服务器地址,fileServer如果想使用默认的,可以传nil。 naviServer和fileServer的格式说明: 1、如果使用https,则设置为https://cn.xxx.com:port或https://cn.xxx.com格式,其中域名部分也可以是IP,如果不指定端口,将默认使用443端口。 2、如果使用http,则设置为cn.xxx.com:port或cn.xxx.com格式,其中域名部分也可以是IP,如果不指定端口,将默认使用80端口。 */ -(BOOL)setServerInfo:(NSString *)naviServer fileServer:(NSString *)fileServer;
已复制
2
3
4
5
6
7
8
9
10
11
12
13
# Web
在初始化时设置海外数据中心的导航服务器地址,在 init 方法中将 navi 替换为对应的海外数据中心地址:
- 导航服务器地址(navi):navsg01.cn.ronghub.com
代码示例:
var appkey = 'kj29chm026yyn' RongIMLib.RongIMClient.init(appkey, null, { navi: 'navsg01.cn.ronghub.com' });
已复制
2
3
4
# Flutter
在 SDK 初始化 init 之前,请先调用 setServerInfo 方法设置海外数据中心的导航域名和文件服务器地址:
导航服务器地址(naviServer):navsg01.cn.ronghub.com
媒体服务器地址(fileServer):upload.qiniup.com
///设置服务器地址,仅限独立数据中心使用,使用前必须先联系商务开通,必须在 [init] 前调用 /// /// 导航服务器地址 naviServer 和 文件服务器地址 fileServer 的格式说明: ///1、如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用443端口。 ///2、如果使用 http,则设置为 cn.xxx.com:port 或 cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 /// static void setServerInfo(String naviServer, String fileServer) { Map map = {"naviServer": naviServer, "fileServer": fileServer}; _channel.invokeMethod(RCMethodKey.SetServerInfo, map); }
已复制
2
3
4
5
6
7
8
9
10
# Server API
App Server 需要调用融云海外数据中心 API 地址,融云海外数据中心域名:api-sg01.ronghub.com
代码示例:
POST /user/getToken.json HTTP/1.1 Host: api-sg01.ronghub.com App-Key: uwd1c0sxdlx2 Nonce: 14314 Timestamp: 1408710653491 Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8 Content-Type: application/x-www-form-urlencoded userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg
已复制
2
3
4
5
6
7
8
9