基本信息

案例ID:243414

技术顾问:敬属春山 - 3年经验 - 上海天昱塑胶有限公司

联系沟通

微信扫码,建群沟通

项目名称:分布式消息推送系统

所属行业:社交 - IM熟人社交

->查看更多案例

案例介绍

面向高并发实时通信场景,设计并实现分布式 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。

发布任务

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

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服