IM系统实战
IM系统需求分析
- 实现功能界面
- 实现资源标准化编码
- 资源信息采集并标准化,转化成content/url
- 资源编码,终极目标都是拼接一个消息体(json/xml)
- 资源标准化
- 确保消息体的可扩展性
- 接收消息并解析显示
- 群聊的特殊需求
- 基础功能上无区别
- 1个消息多个参与群聊的终端及时接收到
- 服务器流量计算
- 服务器负载分析
- 解决方案
技术难点要点讲解
-
IM系统一般结构
-
我们这个系统实现了的以及重点
-
网络结构
http提供api服务,websocket提供长链接推送服务 -
重点难点之websocket怎么用
流程-A如何发送消息给B
-
重点难点之优化单机性能
- 设计高质量代码优化 Map
使用读写锁、map不要太大、 - 突破系统瓶颈优化连接数
选linux系统而不是windows系统、优化最大文件数 - 降低对CPU资源的使用
降低json编码频次,一次编码多次使用 - 降低对IO资源的使用
合并写数据库次数、优化数据库读操作、能缓存的就缓存 - 应用服务/资源服务分离
系统提供动态服务、文件服务迁移到oss、