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
-
Deploy RocketMQ
Guide: RocketMQ
-
Init MySQL Tables
Guide: MySQL
-
Deploy Console
Guide: Console
-
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
-
Deploy Chronos
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.
Feel free to contact DDMQ developers via ddmq_open_source@didiglobal.com
DDMQ is licensed under the Apache License 2.0. See the LICENSE file.