消息中间件产品系统

我要开发同款
proginn11261803562026年08月03日
6阅读

技术信息

语言技术
JavaPythonHTTP
系统类型
Linux
行业分类
企业服务

作品详情

行业场景

项目描述: 针对业务系统间耦合度高、异步通信瓶颈问题,从零设计并实现了一款轻量级分布式消息中间件,旨在替代部分场景下对Kafka/RabbitMQ的依赖,降低运维复杂度。

功能介绍

通信协议模块: 基于Netty自定义二进制通信协议,设计了消息头(魔数、版本号、序列化方式)与消息体结构。支持同步/异步发送,通过 LengthFieldBasedFrameDecoder 解决TCP粘包/拆包问题,保障数据传输的完整性。

消息存储模块: 采用“顺序写+索引”的设计。消息主体写入CommitLog文件以保证磁盘顺序写性能;构建ConsumerQueue索引文件,加速消息消费拉取。集成RocksDB存储Offset,支持消息回溯。

集群治理模块: 基于Zookeeper实现Broker集群的注册与发现。实现了Master-Slave架构下的主从同步机制,当Master宕机时,Slave能自动切换为可读状态,确保服务高可用(HA)。

消费管控模块: 实现了消费者组(Consumer Group)管理,支持集群消费(负载均衡)与广播消费模式。内置消息确认(ACK)机制,支持消费失败后的重试与死信队列(DLQ)投递。

项目实现

为解决业务解耦与流量削峰问题,基于Netty重构了网络通信层,采用Reactor主从线程模型处理I/O,单机吞吐量达10w+ TPS。数据存储层借鉴“顺序写+索引”思想,利用RocksDB作为持久化引擎,通过零拷贝技术减少内存开销。集群管理依托Zookeeper实现Master选举与节点探活,配合改进版的Raft共识算法保证元数据一致性。消费端实现了基于长轮询(Long Polling)的拉取机制,并支持消费进度(Offset)持久化,确保在Broker重启后消息不丢失、不重复消费。
技术
netty
java
grpc
socket
vue

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论