{"id":13617708,"url":"https://github.com/didi/DDMQ","last_synced_at":"2025-04-14T06:35:17.052Z","repository":{"id":44341049,"uuid":"163244687","full_name":"didi/DDMQ","owner":"didi","description":"DDMQ is a distributed messaging product with low latency, high throughput and high availability.","archived":false,"fork":false,"pushed_at":"2023-10-09T06:49:51.000Z","size":18470,"stargazers_count":1303,"open_issues_count":24,"forks_count":338,"subscribers_count":80,"default_branch":"master","last_synced_at":"2024-10-29T17:55:55.469Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/didi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-12-27T03:51:21.000Z","updated_at":"2024-10-20T09:31:34.000Z","dependencies_parsed_at":"2024-01-14T08:11:50.925Z","dependency_job_id":null,"html_url":"https://github.com/didi/DDMQ","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2FDDMQ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2FDDMQ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2FDDMQ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2FDDMQ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/didi","download_url":"https://codeload.github.com/didi/DDMQ/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223103702,"owners_count":17088023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T20:01:46.626Z","updated_at":"2025-04-14T06:35:17.017Z","avatar_url":"https://github.com/didi.png","language":"Java","funding_links":[],"categories":["HarmonyOS","Java","进程间通信","Message Queue Middlewares"],"sub_categories":["Windows Manager"],"readme":"**English** | [中文](./README_CN.md)\n\u003cp align=\"center\"\u003e\n\u003cimg align=\"left\" width=\"175\" src=\"image/logo.png\"\u003e\n\u003cbr\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n**DDMQ** is a distributed messaging product built by DiDi Infrastructure Team based on [Apache RocketMQ](https://rocketmq.apache.org/). 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](https://www.didiglobal.com/). 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.\n\n\n----------\n\n### Features\n\n* Messaging model: support both P2P and Pub/Sub messaging model\n\n* Massive message storage, support both RocketMQ and Kafka as storage engine\n\n* Low latency \u0026 High throughput\n\n* Delay message, use RocksDB as storage engine\n\n* Transactional message: provide transaction similar to X/Open XA\n\n* Multiple language client SDK: provide client SDK in PHP, Java, Go, C/C++, Python\n\n* Message transition and filter with user-defined Groovy script\n\n* An easy-to-use Web Console\n\n\n----------\n\n### Architecture Overview\n\n\u003ccenter\u003e\n\u003cimg src=\"image/arch.png\" width = \"80%\" /\u003e\n\u003c/center\u003e\n\n\n\n----------\n\n### Modules\n\n* carrera-common: common code for other modules, such as encapsulate zk operations.\n\n* carrera-producer: message producer proxy with built-in Thrift Server, responsible for forwarding message from SDK client to broker.\n\n* carrera-consumer: message consumer proxy with built-in Thrift Server, provide SDK PULL and HTTP PUSH for message consumption.\n\n* carrera-chronos: delay message module, use RocksDB as storage engine.\n\n* carrera-sdk: producer and consumer SDK, support Java/C/C++/Go/PHP/Python. \n\n* rocketmq: based on RocketMQ (Ver 4.2.0)，add new features such as broker auto fail-over.\n\n* carrera-console: a Spring-based User Web Console.\n\n* carrera-monitor: consumer lag monitor and DDMQ cluster monitor. \n\n* carrera-docker: provide a DDMQ docker image that runs in standalone mode.\n\n----------\n\n### Quick Start\nWe provide a standalone version of DDMQ as Docker image, read [this](carrera-docker/README.md) for more information.\n\n\n----------\n\n\n### Deployment\n#### Dependencies\n* 64bit OS, Linux/Unix/Mac\n* 64bit JDK 1.8+\n* Maven 3.2.x\n* MySQL 5.7.x\n* Tomcat 7/8/9\n* Zookeeper 3.4.x\n\n\n#### Deployment Procedures\n\n*  Deploy MySQL \u0026 Zookeeper\n \t\u003e  Install MySQL 5.7:  \u003chttps://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/\u003e\n\n \t\u003e  Install Zookeeper 3.4.x:  \u003chttps://zookeeper.apache.org/doc/r3.1.2/zookeeperStarted.html\u003e\n \t\n \t\n*  Deploy RocketMQ\n\n    \u003eGuide: [RocketMQ](rocketmq/README.md)\n  \n*  Init MySQL Tables\n\n    \u003eGuide: [MySQL](carrera-console/README.md)\n  \n*  Deploy Console\n\n    \u003eGuide: [Console](carrera-console/README.md)\n\n*  Init Zookeeper Node and Data\n\t\n\t\u003e call console api： \n\t\n\t\u003e * curl http://console_addr:8080/carrera/api/odin/internal/v4/initZkPath\n\t\u003e * curl http://console_addr:8080/carrera/api/odin/internal/v4/initAllZk\n\n\n*  Deploy Producer Proxy\n\n    \u003eGuide: [Deploy PProxy](carrera-producer/README.md)\n\n*  Deploy Consumer Proxy\n\n    \u003eGuide: [Deploy CProxy](carrera-consumer/README.md)\n\n*  Deploy Chronos\n\n    \u003eGuide: [Deploy Chronos](carrera-chronos/README.md)\n\n\n\n----------  \n\n### Usage\n\n  * read [DDMQ Console Manual](carrera-console/USAGE.md) for more information.\n\n\n----------\n\n### Contributing\nWelcome to contribute by creating issues or sending pull requests. See [Contributing Guide](CONTRIBUTING.md) for guidelines.\n\n----------\n\n### Contact\nFeel free to contact DDMQ developers via \u003cddmq_open_source@didiglobal.com\u003e\n\n\n----------\n\n### License\n\nDDMQ is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidi%2FDDMQ","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdidi%2FDDMQ","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidi%2FDDMQ/lists"}