如果正在使用自研或第三方即时通信服务的App开发者希望接入AIM,则需要考虑从旧IM系统迁移到AIM的问题。AIM针对不同场景,为客户量身打造了一套迁移方案,并且成功为多家客户实现了平滑迁移。

术语约定

  • 老系统:App原来使用的IM系统。
  • 新系统:AIM系统。
  • 老App:基于老系统实现的老版本App。
  • 新App:预计AIM系统实现的新版本App。

迁移方案

IM系统迁移提供强制迁移和平滑迁移(研发中)两种方案,方案介绍及对比如下。

  • 强制迁移
    强制迁移方案是在完成老系统的历史数据迁移到新系统后,强制所有的老App升级到新App。此方案简单,升级后无需处理新老App兼容问题。具体方案如下:强制迁移
    主要流程如下:
    1. 导入历史数据至AIM,包括:
      • 用户单聊会话
      • 单聊历史消息
      • 用户群数据
      • 群聊历史消息
    2. 强制用户从老App升级到新App。
    3. 老系统下线,所有用户通信均在AIM。
  • 平滑迁移(研发中)
    新老App共存,消息互通,在老App停用之前,App后台需要在新老系统之间保持实时双向同步,此方案相对复杂,但对终端用户体验更好。具体方案如下图所示:平滑迁移
    主要流程如下:
    1. 新老系统间实时双向同步,包含单聊消息、群组数据和群聊消息。
    2. 导入历史数据至AIM,包括:
      • 用户单聊会话
      • 单聊历史消息
      • 用户群数据
      • 群聊历史消息
    3. 新App:逐步灰度新App放大至100%。
    4. 新老系统共存一段时间,待老App升级至新App到一定比例后停止服务。
  • 方案对比
    迁移方案 优势 劣势
    强制迁移 实现成本低,新老系统不需要双向实时同步。 在某一个时刻要求老App强制更新,会带来一些风险,回滚操作需要客户端发版。
    平滑迁移 新老App可以无缝切换,体验更好。 实现成本高,需要实现新老系统实时互通。

迁移步骤

迁移的步骤分为存量数据导入和增量数据同步两部分。

  1. 存量数据导入
  2. 增量数据同步
    • 单聊数据同步
      1. 老系统增量单聊消息通过SendMessage同步AIM。
      2. AIM的增量消息通过订阅消息发送事件同步到老系统。
    • 群聊数据同步
      1. 老系统增量群聊消息通过SendMessage同步AIM。
      2. AIM的增量消息通过订阅消息发送事件同步到老系统。
    • 群聊操作同步

      群创建、解散、加人、减人操作还在研发中,敬请期待。