1 IM即时通讯项目框架分析和部署
1. 即时通讯框架分析和部署
2. 登录服务器和消息服务器设计
3. 路由服务器设计
4. 数据库代理服务器设计
5. 文件服务器和docker部署
6. 性能测试和k8s上云发布
1.1 即时通讯应用场景
即时通讯技术应用非常广泛,涉及教育、电商、金融、泛娱乐、生活服务、医疗健康、
政企服务、游戏聊天、在线客服等等行业,以下以部分典型应用作为简介。
(一)教育 (二)电商 (三)金融 (四)泛娱乐
(五)招聘 (六)医疗健康 (七)政企服务 (八)游戏类产品
提供:即时通讯、用户点对点聊天、主播互动、实时弹幕、
实时监控、远程控制、多人互动、位置共享
1.2 即时通讯提供商
容联
融云
环信 http api
网易云信
QQ通讯
详细对比:https://blog.csdn.net/weixin_33739646/article/details/
每天发信息不过 10000 条
大部分场景下自研成本比使用第三方的高
自研的优势:可控
1.3 即时通讯开源项目
C++: teamtalk
Go:GoBelieve goim
Java:openfire
2.1 即时通讯的基本架构
客户端与服务器端进行网络通信、收发消息
连接层为客户端收发消息提供出入口。主
要的任务:保持海量用户连接;解析协议,
对传输内容进行编码;维护session;推送
消息。
核心业务层负责IM系统各项功能的核心逻
辑实现。
数据层负责IM系统相关数据的持久化存储,
包括消息内容、账号信息等。
2.2 IM技术的特点
- 实时性 :保证消息实时触达。(轮询与长连接)(消息提示推送,和我们阅读的消
息是不一样的。)
- 可靠性 :保证消息的不丢失和不重复。(ACK 机制)
TCP 只能保证消息数据链路可靠,不能保证业务可靠。
- 一致性 :保证同一条消息在多人、多终端展现顺序的一致性。(消息序号生成