美文网首页互联网架构
架构与特性:一个完整的IM系统是怎样的?

架构与特性:一个完整的IM系统是怎样的?

作者: 码农架构 | 来源:发表于2020-11-07 23:26 被阅读0次

    使用者眼中的聊天系统

    如果我们站在一个使用者的角度从直观体验上来看,一个简单的聊天系统大概由以下元素组成:用户账号、账号关系、联系人列表、消息、聊天会话。我在这里画了一个简单的示意图:

    image.png

    开发者眼中的聊天系统

    从一个 IM 系统开发者的角度看,聊天系统大概由这几大部分组成:客户端、接入服务、业务处理服务、存储服务和外部接口服务。

    image.png

    为什么接入服务和业务处理服务要独立拆分呢?

    • 接入服务作为消息收发的出入口,必须是一个高可用的服务,保持足够的稳定性是一个必要条件。

    • 如果消息收发接入和业务逻辑处理都在一起,势必会让接入模块随着业务逻辑的变更上线,而频繁起停,导致已通过网络接入的客户端连接经常性地断连、重置、重连。

    • 从业务开发人员的角度看,接入服务和业务处理服务进行拆分有助于提升业务开发效率,降低业务开发门槛。

    • 模块拆分后,接入服务负责处理一切网络通信相关的部分,比如网络的稳定性、通信协议的编解码等。这样负责业务开发的同事就可以更加专注于业务逻辑的处理,而不用关心让人头痛的网络问题,也不用关心“天书般的通信协议”了。

    IM 系统都有哪些特性?

    • 实时性

    • 可靠性

      • 不丢消息
      • 消息不重复
    • 一致性

      • 同一条消息,在多人、多终端需要保证展现顺序的一致性
      • 消息序号生成器
    • 安全性

      • 数据传输安全
      • 数据存储安全
      • 消息内容安全
    公众号:码农架构

    相关文章

      网友评论

        本文标题:架构与特性:一个完整的IM系统是怎样的?

        本文链接:https://www.haomeiwen.com/subject/dslcbktx.html