# qunarcorp/qmq

QMQ是去哪儿网内部广泛使用的消息中间件，自2012年诞生以来在去哪儿网所有业务场景中广泛的应用，包括跟交易息息相关的订单场景； 也包括报价搜索等高吞吐量场景。

Repository: https://github.com/qunarcorp/qmq
Canonical: https://ross.abutalabs.com/products/qmq
Language: Java
License: Apache-2.0
License Family: permissive
Topics: mq, message, event, event-driven, kafka, message-driven, message-queue, message-bus, event-bus, xa, distributed-transactions, rabbitmq, consumer, producer
Last push: 2023-12-01T02:13:10+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2826, "days_push": 1007, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2824, forks 707 (observed 2026-08-28T04:07:24.123233+00:00)

## What it is
QMQ is a distributed message queue middleware developed and battle-tested at Qunar since 2012, supporting async, delayed/scheduled, broadcast, ordered, and transactional messages with sub-10ms end-to-end latency. It provides Java and .NET clients, Spring annotation-based APIs, server-side tag filtering, idempotent consumption, dead-letter handling, and rich monitoring/tracing integration.

## Use cases
- send delayed or scheduled messages at second-level precision
- decouple order and transaction workflows with transactional messages
- broadcast cache invalidation events to all consumers
- build high-throughput event-driven microservices
- consume messages exactly once with idempotency support
- filter messages server-side by tag
- scale consumers and brokers dynamically

## When to choose
- you need a Kafka/RabbitMQ alternative with built-in delayed and transactional messaging
- your stack is Java or .NET and you want a simple Spring-annotated producer/consumer API
- you need per-message ack, dead-letter queues, and message delivery tracing
- you run high-throughput trading or search pipelines with low latency requirements

## When to avoid
- you need a large multi-language client ecosystem beyond Java and .NET
- you want a fully managed cloud-hosted message service
- you need Kafka-style log compaction or stream processing ecosystems
- you require active community development - the latest release dates to late 2023

## Facets
- artifact type: service
- maturity: maintenance
- function: message-queue, streaming, monitoring, tracing
- domain: microservices, backend
- platform: jvm, self-hosted
- tags: delayed-messages, transactional-messages, event-driven-architecture, exactly-once, dotnet-client, spring-integration, messaging, docker

## Member repositories
- qunarcorp/qmq (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:24.123233+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:38:15.561962+00:00, confidence not recorded.
  - readme: https://github.com/qunarcorp/qmq (fetched 2026-08-28T04:07:24.123233+00:00, sha 12a69bd58689)
- Data as of 2026-08-30T08:39:29.467469+00:00.
