DDMQ 基于 RocketMQ 的分布式消息队列开源项目

我要开发同款
匿名用户2019年01月16日
139阅读
开发技术JavaGO语言
所属分类JMS/消息中间件、服务器软件
授权协议Apache-2.0

作品详情

DDMQ 是滴滴出行架构部基于 ApacheRocketMQ 构建的消息队列产品。作为分布式消息中间件,DDMQ为滴滴出行各个业务线提供了低延迟、高并发、高可用、高可靠的消息服务。DDMQ提供了包括实时消息、延迟消息和事务消息在内的多种消息类型以满足不同的业务需求。用户通过统一的Web控制台和傻瓜式的SDK即可轻松接入DDMQ生产和消费消息,体验功能丰富、稳定的消息服务。

主要功能特性

消息模型:支持P2P,Pub/Sub等消息模型

海量消息存储,支持消息回溯:使用RocketMQ和Kafka作为消息的底层存储引擎。

低延迟高吞吐:毫秒级延迟,单机百万条消息吞吐。

延迟消息:单条消息设置精确到秒级的延迟时间,支持Thrift、HTTP形式的回调接口。提供了丰富的消息类型,包括延迟消息和循环延迟消息。

事务消息:提供类似X/OpenXA的分布事务功能,通过DDMQ事务消息能够达到分布式事务的最终一致。

多语言客户端:提供了主流开发语言的SDK,包括PHP,Java,Go,C/C++,Python等。API上保持着最易使用的HighLevel形式。

支持复杂的消息转换过滤功能:支持使用Groovy脚本在服务端进行消息内容的转化和过滤,能做大大地减少客户端和服务器的数据传输,同时减少客户端的处理消息的负载。

提供了一个易用性高的Web用户控制台,方便用户在控制台上申请Topic,ConsumerGroup,Subscription等资源。提供消费进度的查看和重置功能。

DDMQ架构图

模块介绍

carrera-common提供其他模块的公共代码,封装了ZK操作。

carrera-producer生产消息代理模块,内置ThriftServer,负责将client的生产的消息转发给broker。

carrera-consumer消费消息代理模块,内置ThriftServer,提供SDK拉取和HTTP推送等方式将消息发给订阅方。

carrera-chronos延迟消息模块,使用RocksDB作为延迟消息的存储引擎。

carrera-sdk生产和消费消息的SDK代码,支持Java/C/C++/Go/PHP/Python等主流语言。

rocketmq基于开源RocketMQ修改(版本4.2.0),增加了broker主从自动切换等特性。

carrera-console基于Spring开发的用户控制台,管理配置。

carrera-monitor监控模块,提供消费积压监控和集群健康监控。

carrera-docker提供单机版的DDMQ镜像,方便部署和使用。

外部依赖

64bitOS,Linux/Unix/Mac

64bitJDK1.8+

Maven3.2.x

MySQL5.7.x

Tomcat7/8/9

Zookeeper3.4.x

使用

DDMQ用户控制台使用指南

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

评论