前面通过 18 篇文章,非常系统地分析了 IM 的分层架构、每一层的核心职责和关键设计、以及基于分层架构下核心功能逻辑的实现。
分层架构的 IM 系统肯定是分布式部署,作为 “分层架构” 这一篇章的最后,我们再整体分析一下它的三高特性,即: 高可用、高吞吐和高扩展。
分析三高之前,先快速回顾一下 IM 系统的分层架构,见下图。
IM 系统的分层架构,由前到后分别是( 在 《分层架构 IM 系统之架构解读》 中有深入分析):
-
负责与用户进行交互的终端层
-
负责维护与客户端之间的长连接的入口层
-
负责处理 IM 流程逻辑的业务逻辑层
-
负责维护在线用户状态的路由层
-
负责访问数据库和缓存的数据访问层
-
负责对数据进行持久化的数据存储层
一、高可用
高可用是指系统能持续工作的能力,比如系统可以 7 * 24 不间断地连续工作;在分布式系统中,“副本” 是保证系统可用性的唯一技术手段。
终端层的 “客户端” 发出请求后,首先到达 “入口层”;入口层 Entry 采用多副本方式(集群)部署,任何一个 Entry 节点挂掉之后,客户端的连接和业务请求会由其它 Entry 节点来处理;入口层的流量分配由前面的反向代理 TGW