
手撸IM
文章平均质量分 97
BossFriday
不进行简单的转载,所有文章和代码均为本人原创或者亲自重构;
申明:
因github中国访问受限,所有github上项目不再更新,主要项目迁移至:https://gitee.com/bossfriday
展开
-
【手撸IM】通讯协议设计与实现
之前说过要手撸一个 IM 需要考虑的东西太多了,以至于前期做的很多工作与 IM 本身其实并没有太多直接的关系,例如:分布式策略、接入服务等。上一篇抛砖引玉的介绍了消息IM的设计与实现,现在谈下如何设计与实现一个私有的通讯协议。原创 2024-03-20 22:23:40 · 1637 阅读 · 0 评论 -
【手撸IM】消息ID设计与实现
微信团队是这样看这个问题的:要解决消息的唯一性、顺序性问题,可以将一个技术点分解成两个:即将原先每条消息一个自增且唯一的消息ID分拆成两个关键属性——消息ID(msgId)、消息序列号(seqId),即消息ID只要保证唯一性而不需要兼顾顺序性(比如直接用UUID)、消息序列号只要保证顺序性而不需要兼顾唯一性,这样的技术分解就能很好的解决原本一个消息ID既要保证唯一性又要保证顺序性的难题。如何快速高效的生成消息数据的唯一 ID ,是影响系统吞吐量的关键因素。这里我给出一个分布式 IM 消息ID的实现。原创 2024-03-12 11:14:36 · 547 阅读 · 0 评论