English | 中文
DDMQ is a distributed messaging product built by DiDi Infrastructure Team based on Apache RocketMQ. As a distributed messaging middleware, DDMQ provides low latency, high throughput and high available messaging service to many important large-scale distributed systems inside DiDi. DDMQ provides realtime messaging, delay-time messaging and transactional messaging to satisfy different scenarios. Through an easy-to-use Web Console and simple SDK Client, developers can experience producing and consuming messages in the most simple and stable way.
Messaging model: support both P2P and Pub/Sub messaging model
Massive message storage, support both RocketMQ and Kafka as storage engine
Low latency & High throughput
Delay message, use RocksDB as storage engine
Transactional message: provide transaction similar to X/Open XA
Multiple language client SDK: provide client SDK in PHP, Java, Go, C/C++, Python
Message transition and filter with user-defined Groovy script
An easy-to-use Web Console
carrera-common: common code for other modules, such as encapsulate zk operations.
carrera-producer: message producer proxy with built-in Thrift Server, responsible for forwarding message from SDK client to broker.
carrera-consumer: message consumer proxy with built-in Thrift Server, provide SDK PULL and HTTP PUSH for message consumption.
carrera-chronos: delay message module, use RocksDB as storage engine.
carrera-sdk: producer and consumer SDK, support Java/C/C++/Go/PHP/Python.
rocketmq: based on RocketMQ (Ver 4.2.0)，add new features such as broker auto fail-over.
carrera-console: a Spring-based User Web Console.
carrera-monitor: consumer lag monitor and DDMQ cluster monitor.
carrera-docker: provide a DDMQ docker image that runs in standalone mode.
We provide a standalone version of DDMQ as Docker image, read this for more information.
- 64bit OS, Linux/Unix/Mac
- 64bit JDK 1.8+
- Maven 3.2.x
- MySQL 5.7.x
- Tomcat 7/8/9
- Zookeeper 3.4.x
Deploy MySQL & Zookeeper
Install MySQL 5.7: https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/
Install Zookeeper 3.4.x: https://zookeeper.apache.org/doc/r3.1.2/zookeeperStarted.html
Init MySQL Tables
Init Zookeeper Node and Data
call console api：
- curl http://console_addr:8080/carrera/api/odin/internal/v4/initZkPath
- curl http://console_addr:8080/carrera/api/odin/internal/v4/initAllZk
Deploy Producer Proxy
Guide: Deploy PProxy
Deploy Consumer Proxy
Guide: Deploy CProxy
Guide: Deploy Chronos
- read DDMQ Console Manual for more information.
Welcome to contribute by creating issues or sending pull requests. See Contributing Guide for guidelines.
DDMQ is licensed under the Apache License 2.0. See the LICENSE file.