-
推送式系统📲
与常见的请求响应式的系统不同,例如搜索系统,ftp系统,web系统,这些都属于请求响应式系统。
推送式系统最大的特点就是,你不需要去主动请求就可以接收到响应结果,从而触发一些业务操作。 -
逻辑复杂性难点💥
举个简单的添加好友流程:- 用户A添加用户B为好友,并且添加到分组G
- 判断A是否存在
- 判断B是否存在
- 判断分组G是否存在
- 拉取A的好友列表,判断B是否存在A的好友列表中
- 判断A的好友是否达到上限
- 判断A是否将B拉黑
- 判断B是否将A拉黑
- 检查用户A是否频繁添加其他人为好友
- 检查用户A添加好友描述是否涉黄,敏感词
- 拉取用户B的添加好友策略,查看是否允许添加好友
- 再根据B的添加好友策略走不通的添加流程,如开启好友验证,则走好友申请流程,如按身份添加则走身份判断流程…
账号,群组,消息等服务的复杂度并不低于好友服务👓
-
消息可达性 ✈️
既消息的可靠传输,其实这个问题不光是即时通讯的难点,所有的分布式系统可能都有这个难点,只是这一点在即时通讯的场景中尤为突出与重要,如果一个聊天软件,频繁丢消息还有用户会使用吗?
分布式领域,任何端到端的消息传递协议,不可能做到既不丢失也不重复,那么是不是即时通讯系统就被判了死刑了呢?并不是,我们在设计即时通讯架构系统的时候需要做一定的折中取舍。后面会详细介绍。 -
状态同步⌚️
-
海量数据存储🖥
系统中存在的用户数据,用户与用户之间的好友数据,用户与用户的群组数据,群组中的群成员数据…
如果一个日活10w的即时通讯应用,那么每天群聊,单聊所产生的聊天消息会有多少条呢?
点击查看更多内容
9人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦