默认

从新手到专家:如何设计一套亿级消息量的分布式IM系统

查看数: 134190 | 评论数: 10 | 收藏 16
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-03-29 00:30

正文摘要:

本文原作者Chank,原题“如何设计一个亿级消息量的 IM 系统”,为了提升内容质量,即时通讯收录时有修订和改动。 1、写有前面 本文将在亿级消息量、分布式IM系统这个技术前提下,分析和总结实现这套系统所需要掌握 ...

评论

JackJiang 发表于 9 个月前
引用:苏门答腊伟 发表于 2024-02-05 10:44
可以直接用发送方和接收方吗,不额外引入一个会话的概念。

可以
苏门答腊伟 发表于 9 个月前
引用:JackJiang 发表于 2024-02-03 11:20
会话id才能关联到信箱呀

可以直接用发送方和接收方吗,不额外引入一个会话的概念。
JackJiang 发表于 9 个月前
引用:苏门答腊伟 发表于 2024-02-01 20:44
按照信箱这种设计,不懂为什么还需要会话id呢?求解答

会话id才能关联到信箱呀
午餐呢 发表于 9 个月前
引用:苏门答腊伟 发表于 2024-02-01 20:44
按照信箱这种设计,不懂为什么还需要会话id呢?求解答

恢复历史聊天记录?
苏门答腊伟 发表于 9 个月前
按照信箱这种设计,不懂为什么还需要会话id呢?求解答
LitJoke_GtFqQ 发表于 3 年前
引用:JackJiang 发表于 2021-04-23 11:40
引入mq起到了什么作用?

针对楼主的问题,mq在此是否可以起到类似预写日志的作用。入mq成功,则可以认为发送成功,由消费者存储到不同的存储系统。如果消费者处理失败(1.消费者异常,2.存储系统异常,3.网络异常),对于异常1,消费者恢复后可以从上次ack的位置继续消费,问题由系统内部消化。
如果不使用mq,发送成功的判定标准就变成了:1.消费者正常(在此指消息处理服务器) 2.所有存储系统存储成功。那么当出现异常导致数据不一致时,相应的错误由发送方感知,并依赖发送方进行重试,在重试期间(可能很短,极端情况下可能会较长)会出现数据的不一致。
JackJiang 发表于 3 年前
引用:LitJoke_GtFqQ 发表于 2021-04-23 10:56
如果要保证数据的强一致,通常就会牺牲系统的性能。个人认为可以换个思路,消息到来先入mq,由消费者来落 ...

引入mq起到了什么作用?
LitJoke_GtFqQ 发表于 3 年前
引用:just fine 发表于 2021-04-18 21:54
写扩散的时候需要写两份,通常同步和漫游的使用不同的存储系统,如何保障事务呢?

如果要保证数据的强一致,通常就会牺牲系统的性能。个人认为可以换个思路,消息到来先入mq,由消费者来落地到不同的存储系统,并提供最终一致性保障。个人看法,希望可以起到抛砖引玉的作用
游客 发表于 3 年前
写扩散的时候需要写两份,通常同步和漫游的使用不同的存储系统,如何保障事务呢?
漏船载酒枫 发表于 3 年前
可以说很全面了

返回顶部