QMQ:去哪儿网内部广泛使用的消息中间件
QMQ 是由去哪儿网开源的一款高性能、低延迟的消息中间件,主要使用 Java 语言开发,部分组件使用 C#、C++、Erlang 等语言实现。自 2012 年诞生以来,QMQ 在去哪儿网的各种业务场景中得到了广泛应用,包括订单、报价搜索等高吞吐量场景。
核心功能
QMQ 主要提供以下核心功能:
- 异步实时消息:支持高吞吐量的消息发送和接收。
- 延迟/定时消息:支持任意秒级的延迟和定时消息投递。
- 广播消息:支持广播模式,每个 Consumer 都能收到相同的消息,适用于本地缓存更新等场景。
- 基于 Tag 的服务端过滤:通过 Tag 实现消息的过滤,提高消息处理的精准性。
- Consumer 端幂等处理支持:确保 Consumer 端处理消息的幂等性,避免重复处理。
- Consumer 端 Filter:Consumer 端可以自定义 Filter,只处理符合条件的数据。
- 消息确认机制:支持按条确认消息,确保消息处理的可靠性。
- 死信消息处理:处理无法正常消费的消息,避免消息丢失。
- 集成 Spring Annotation:提供简单的 API,与 Spring 框架无缝集成。
- 丰富的监控指标:提供丰富的监控数据,便于跟踪和分析系统状态。
- 接入 OpenTracing:支持分布式追踪。
- 事务消息:确保消息处理的一致性。
最近更新的功能
根据项目的更新记录,最近更新的功能包括:
- 优化了消息存储模型,提高了消息的存储效率和处理速度。
- 引入了读写分离机制,提升了系统的并发处理能力。
- 新增了消息投递轨迹功能,便于追踪消息的流转过程。
- 实现了历史消息的自动备份,保证了数据的安全性和完整性。
- 支持了有序消息功能,确保了消息的顺序性。
通过这些更新,QMQ 进一步提升了消息中间件的性能和稳定性,为开发者提供了更丰富的功能和更便捷的使用体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考