15.1 如何支撑亿级用户的高并发IM架构的理论基础

image.png

15.1.1 亿级用户的系统架构的开发实践

主要的集群介绍如下:

  1. Netty服务集群 :主要用来负责维持和客户端的TCP连接,完成消息的发送和转发
  2. ZooKeeper集群 :负责Netty Server集群的管理,包括注册、路由、负载均衡。集群IP注册和节点ID分配。主要在基于ZooKeeper集群提供底层服务
  3. Redis集群 :负责用户、用户绑定关系、用户群组关系、用户远程会话等等数据的缓存。缓存其他的配置数据或者临时数据,加快读取速度。
  4. MySql集群 :保存用户、群组、离线消息等。
  5. RocketMQ消息队列集群 :主要是将优先级不高的操作,从高并发模式转成低并发的模式。

    15.1.2 高并发架构的技术选型

  6. 核心组件
    Netty4.x + Spring4.x + ZooKeeper 3.x +Redis 3.x + RocketMQ 3.x+ Mysql5.x + Monggo 3.x + SpringCloud Finchley+ Nginx 15

  7. 短连接服务: Spring Cloud
  8. 长连接服务: Netty 主要用来负责维持和客户端的TCP连接,完成消息的发送和转发。
  9. 消息队列: RocketMQ高速消队列
  10. 数据库: Mysql+Mongodb Mysql用来存储结构化数据,如用户数据; Mongodb用来存储半结构化的离线消息。
  11. 序列化协议: Protobuf + JSON