从业务需求出发,IM 系统都有哪些不一样的特性


1. 实时性

对于一个实时消息系统,“实时”二字很好地表达了这个系统的基本要求。

通过微信和你的好友聊天,结果等半天对方才收到,基本上也没有意愿聊了;直播场景下,如果主播的互动消息房间里的粉丝要等很长时间才能收到,也很难让粉丝们有积极参与的欲望。

2. 可靠性

如果说“实时性”是即时消息被广泛应用于各种社交、互动领域的基本前置条件,那么消息的可靠性则是实时消息服务可以“被信赖”的另一个重要特性。

这里的可靠性通俗来讲,一般包括两个方面。

  • 不丢消息。“丢消息”是互动中让人难以接受的 Bug,某些场景下可能导致业务可用性差,甚至不可用的情况。比如直播间“全员禁言”的信令消息丢失,就可能导致直播室不可控的一些情况。
  • 消息不重复。消息重复不仅会对用户造成不必要的骚扰和困惑,可能还会导致比较严重的业务异常,比如直播间“送礼物”的消息由于某种原因被重复发出,处理不妥的话可能会导致用户损失。

3. 一致性

消息的一致性一般来是指:同一条消息,在多人、多终端需要保证展现顺序的一致性。

比如,对于单聊场景,一致性是指希望发送方的消息发送顺序和接收方的接收顺序保持一致;而对于一个群的某一条消息,我们希望群里其他人接收到的消息顺序都是一致的;对于同一个用户的多台终端设备,我们希望发送给这个用户的消息在多台设备上也能保持一致性。

缺少“一致性”保障的 IM 系统,经常会导致双方沟通过程中出现一些“奇妙的误会”,语言乱序相关的“惨案”。网络上,你可以想象一下发给下属、领导或合作方的几条重要工作内容,如果消息错乱了,后果可能会比较严重。

保证“消息的一致性”,也是考验即时消息系统的重要指标

4. 安全性

由于即时消息被广泛应用于各种私密社交和小范围圈子社交,因此用户对于系统的隐私保护能力要求也相对较高。
从系统使用安全性的角度来看,首先是要求“数据传输安全”,其次是要求“数据存储安全”,最后就是“消息内容安全”。

总结

  • 实时性,保证消息实时触达是互动场景的必备能力。
  • 可靠性,“不丢消息”和“消息不重复”是系统值得信赖的前置条件。
  • 一致性,“多用户”“多终端”的一致性体验能大幅提升 IM 系统的使用体验。
  • 安全性,“数据传输安全”“数据存储安全”“消息内容安全“三大保障方面提供全面隐私保护。