Skip to content

云信核心架构

整体架构图

┌─────────────────────────────────────────────────────────┐
│                    客户端 SDK 层                          │
│  iOS  Android  Web  小程序  Flutter  React Native  PC    │
└──────────────────────┬──────────────────────────────────┘
                       │ HTTPS / WebSocket / QUIC
┌──────────────────────▼──────────────────────────────────┐
│                    接入层(Access Layer)                  │
│         全球 200+ PoP 节点,就近接入,自动路由             │
└──────────────────────┬──────────────────────────────────┘

┌──────────────────────▼──────────────────────────────────┐
│                    核心服务层                             │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────┐ │
│  │ IM 服务  │  │ RTC 服务 │  │ 直播服务 │  │ 信令服务│ │
│  └──────────┘  └──────────┘  └──────────┘  └─────────┘ │
└──────────────────────┬──────────────────────────────────┘

┌──────────────────────▼──────────────────────────────────┐
│                    基础设施层                             │
│  消息存储(MySQL + HBase)  媒体服务器  CDN  对象存储     │
└─────────────────────────────────────────────────────────┘

IM 架构详解

消息路由

发送方 → 接入服务器 → 路由服务 → 接收方在线?
                                    ├── 在线:直接推送
                                    └── 离线:存入离线消息队列
                                              → APNs/FCM/厂商推送

消息存储

  • 在线消息:Redis 缓存,保证实时性
  • 历史消息:HBase 持久化,支持漫游查询
  • 消息 ID:全局唯一,基于 Snowflake 算法
  • 消息顺序:服务端时序保证,客户端按 msgId 排序

群聊扩散模式

写扩散(小群,< 200 人)
  发送方 → 服务端 → 为每个成员写入消息队列
  优点:读取快  缺点:写入放大

读扩散(大群,> 200 人)
  发送方 → 服务端 → 写入群消息队列
  成员拉取时读取群队列
  优点:写入效率高  缺点:读取时需合并

RTC 架构详解

媒体传输

发送端 → NRTC SDK → WebRTC 协议栈 → 媒体服务器(SFU)→ 接收端

                                    录制服务(可选)
  • 传输协议:WebRTC(UDP 优先,TCP 备用)
  • 编解码:H.264 / VP8(视频),Opus(音频)
  • 弱网优化:FEC 前向纠错 + NACK 重传 + JitterBuffer

SFU vs MCU

模式适用场景特点
SFU(选择性转发)多人会议、互动直播低延迟,服务端不解码
MCU(多点控制)录制、混流推 CDN服务端混流,带宽节省

高可用设计

多活架构

用户请求

全局负载均衡(DNS + Anycast)

就近 PoP 节点(接入层)

核心服务集群(多机房主备)

数据层(MySQL 主从 + HBase 多副本)

故障切换

  • 接入层:单节点故障 < 30s 自动切换
  • 核心服务:主备切换 < 60s
  • 数据层:MySQL 主从切换 < 30s

安全设计

通信安全

  • 传输层:TLS 1.3 加密
  • 消息内容:端到端加密(E2EE,可选)
  • Token 鉴权:服务端签发,有效期可配置

内容安全

  • 与易盾联动,对图片、文字、音视频内容进行实时审核
  • 支持自定义敏感词库
  • 违规内容自动拦截或人工审核

私有化部署架构

客户私有云 / 专有云
├── 接入层(Nginx 集群)
├── 核心服务(Docker + K8s)
│   ├── IM 服务
│   ├── RTC 媒体服务器
│   └── 管理后台
├── 数据层
│   ├── MySQL 主从
│   ├── Redis 集群
│   └── HBase(可选,大规模消息存储)
└── 对象存储(MinIO 或对接客户已有存储)

最小化部署:4 台服务器(2 核心 + 2 媒体) 推荐生产部署:8+ 台服务器,支持 10 万并发

网易智企产品解决方案知识库