-
完成WebSocket握手
查看全部 -
实现Http服务端
查看全部 -
服务端的技术选型
查看全部 -
WebSocket协议传输原理
查看全部 -
webSocket推送
查看全部 -
推模式:服务端推送消息到浏览器
查看全部 -
拉模式与推模式的区别
拉模式:前端轮询的调用接口
查看全部 -
aaa
查看全部 -
整体架构!
查看全部 -
网关集群!
查看全部 -
单机瓶颈
维护海量长连接会花费不少内存
消息推送瞬时消耗大量 CPU 资源
消息推送瞬时帯宽高达 400~600MB (4-6 Gbits),是主要瓶颈!
查看全部 -
单机架构!
查看全部 -
内核瓶颈 - 优化原理
减少网络小包的发送
内核瓶颈 - 优化方案
将同一秒内的 N 条消息,合并成 1 条消息
合并后,每秒推送次数只等于在线连接数
锁瓶颈 - 优化原理
大拆小
锁瓶颈 - 优化方案
连接打散到多个集合中,每个集合有自己的锁
多线程并发推送多个集合,避免锁竞争
读写锁取代互斥锁,多个推送任务可以并发遍历相同集合
CPU 瓶颈 - 优化原理
减少重复计算
CPU 瓶颈 - 优化方案
json 编码前置,1 次消息编码 + 100 万次推送
消息合并前置,N 条消息合并后只编码 1 次
查看全部 -
CPU 瓶颈
浏览器与服务端通常采取 json 格式通讯
json 编码非常耗费 CPU 资源
向 100 万在线推送 1 次,则需 100 万次 json encode
查看全部 -
锁瓶颈
需要维护在线用户集合(100 万在线),通常是一个字典结构
推送消息即遍历整个集合,顺序发送消息,耗时极长
推送期间,客户端仍旧正常上/下线,所以集合需要上锁
查看全部
举报
0/150
提交
取消