15.1 如何支撑亿级用户的高并发IM架构的理论基础
15.1.1 亿级用户的系统架构的开发实践
主要的集群介绍如下:
- Netty服务集群 :主要用来负责维持和客户端的TCP连接,完成消息的发送和转发
- ZooKeeper集群 :负责Netty Server集群的管理,包括注册、路由、负载均衡。集群IP注册和节点ID分配。主要在基于ZooKeeper集群提供底层服务
- Redis集群 :负责用户、用户绑定关系、用户群组关系、用户远程会话等等数据的缓存。缓存其他的配置数据或者临时数据,加快读取速度。
- MySql集群 :保存用户、群组、离线消息等。
RocketMQ消息队列集群 :主要是将优先级不高的操作,从高并发模式转成低并发的模式。
15.1.2 高并发架构的技术选型
核心组件
Netty4.x + Spring4.x + ZooKeeper 3.x +Redis 3.x + RocketMQ 3.x+ Mysql5.x + Monggo 3.x + SpringCloud Finchley+ Nginx 15- 短连接服务: Spring Cloud
- 长连接服务: Netty 主要用来负责维持和客户端的TCP连接,完成消息的发送和转发。
- 消息队列: RocketMQ高速消队列
- 数据库: Mysql+Mongodb Mysql用来存储结构化数据,如用户数据; Mongodb用来存储半结构化的离线消息。
- 序列化协议: Protobuf + JSON