分布式消息推送系统

社交 · IM熟人社交 案例ID: 243414
联系该工程师
微信扫码,建群沟通
作者: 敬属春山 - 3年经验- 上海天昱塑胶有限公司

案例介绍

面向高并发实时通信场景,设计并实现分布式 IM 系统,采用 Comet 网关层 + Logic 业务层 + Job 异步任务层 的分层架构,基于 WebSocket、gRPC、Kafka、Redis、MySQL 实现长连接接入、消息路由、实时推送、离线持久化与多端同步,支持服务独立扩缩容与故障隔离。

1. 负责 Comet / Logic / Job 三层服务核心链路设计与实现:客户端通过 WebSocket 与 Comet 保持长连接,Comet 与 Logic 之间基于 gRPC 双向流 + Protobuf 通信,Logic 与 Job 之间通过 Kafka 异步解耦,完成消息收发、路由分发、推送与持久化;
2. 基于 Redis 实现 token 鉴权、用户/房间路由、消息序号、在线人数与已读游标管理;单聊场景采用 Hash + INCR 支持用户多连接路由、多端同步与历史消息增量拉取,聊天室场景采用 Set 维护房间路由关系,支撑消息广播与房间下线处理;
3. 设计 Kafka 双消费组机制:推送消费组负责低延迟下行推送,结合指数退避、超时控制、DLQ 日志提升失败场景下的可恢复性;持久化消费组负责离线消息写入 MySQL,结合唯一键实现幂等去重;
4. 针对消息热路径持续优化:将 Logic 中同步 MySQL 操作改为 Job 异步持久化,引入本地路由缓存并结合 shared_mutex 降低 Redis 查询开销,将 Comet 到 Logic 的逐条 Unary 调用改为 gRPC 双向流;在多 WebSocket 连接并发压测下,单聊场景吞吐由 8200 QPS 提升至约 5 万 QPS。

相似案例推荐

  • 十六型人格测试

    十六型人格测试

    核心功能 首页:MBTI 翻牌主推横幅(3D 卡牌循环翻动

  • go-zero 架构im

    go-zero 架构im

    个人后端从零开始开发,未上线仅公司内部使用,支持视频聊天,语

  • im系统

    im系统

    公司全栈自研企业即时通讯系统,采用分布式架构,支持私有化部署

  • 新通话

    新通话

    项目简介:该项目是面向全国运营商用户的轻量化智能通信微信小程

  • 宝盒

    宝盒

    内置钉钉通讯功能。实现企业内部通讯。包含审批,权限发放,考勤

  • 美信

    美信

    前期 1、负责歌尔集团前期项目准备及产品定制化工作的开发

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在 1 小时内与您联系确认。

1小时精推人才

需求方专属客服,免费梳理匹配

需求方客服微信二维码
扫码加微信 · 客服人工对接
微信沟通 联系需求方端客服 看中这位工程师了?客服帮你 1 小时对接沟通 → ×