浅析怎么开发分布式IM即时通讯系统

本文探讨了设计分布式IM即时通讯系统时面临的挑战和业界解决方案,包括术语解析、消息处理(读扩散与写扩散)及ID设计。IM系统中的关键概念如用户、消息、会话、群、终端等被阐述,并分析了读扩散与写扩散的优缺点。在ID设计中,文章提到了UUID、Snowflake算法等,并讨论了消息ID递增的必要性和不同递增方式的影响。
摘要由CSDN通过智能技术生成

本文不会给出一套通用的IM方案,也不会评判某种架构的好坏,而是讨论设计IM系统的常见难题跟业界的解决方案。

因为也没有所谓的通用IM架构方案,不同的解决方案都各有其优缺点,只有最满足业务的系统才是一个好的系统。

在人力、物力、时间资源有限的前提下,通常需要做出很多权衡,此时,一个能够支持快速迭代、方便扩展的IM系统才是最优解。

IM常见术语

0)用户:系统的使用者。

1)消息:是指用户之间的沟通内容(通常在IM系统中,消息会有以下几类:文本消息、表情消息、图片消息、视频消息、文件消息等等)。

2)会话:通常指两个用户之间因聊天而建立起的关联。

3)群:通常指多个用户之间因聊天而建立起的关联。

4)终端:指用户使用IM系统的机器(通常有Android端、iOS端、Web端等等)。

5)未读数:指用户还没读的消息数量。

6)用户状态:指用户当前是在线、离线还是挂起等状态。

7)关系链:是指用户与用户之间的关系,通常有单向的好友关系、双向的好友关系、关注关系等等(这里需要注意与会话的区别:用户只有在发起聊天时才产生会话,但关系并不需要聊天才能建立。对于关系链的存储,可以使用图数据库(Neo4j等等),可以很自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值