QMQ:一个去哪儿网内部广泛使用的消息中间件

Posted FOSS Lab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QMQ:一个去哪儿网内部广泛使用的消息中间件相关的知识,希望对你有一定的参考价值。

点击蓝字
默默关注

整理 | 叶子


一、软件介绍


QMQ 是去哪儿网内部广泛使用的消息中间件,自2012年诞生以来在去哪儿网所有业务场景中广泛的应用,包括跟交易息息相关的订单场景;也包括报价搜索等高吞吐量场景。目前在公司内部日常消息 qps 在 60W 左右,生产上承载将近 4W+ 消息 topic ,消息的端到端延迟可以控制在 10ms 以内。


QMQ架构



QMQ存储


QMQ:一个去哪儿网内部广泛使用的消息中间件

存储还是分了三个部分,分别是message log, consume log, pull log。

QMQ事务消息


QMQ:一个去哪儿网内部广泛使用的消息中间件

如图所示,QMQ的事务是通过关系型数据库来实现。即每一个使用QMQ的应用,都必须新建一个指定的table,用来保存要发送的消息。在server上会有定时的任务来轮询db,将未消费的消息进行消费。同时,生产者也可以将业务逻辑与消息写入db放到同一个数据库事务中,保证了业务逻辑和消息发送成功这两个操作的原子性。



https://github.com/qunarcorp/qmq


三、主要特性


  • 异步实时消息

  • 延迟/定时消息

  • 基于 Tag 的服务端过滤

  • Consumer 端幂等处理支持

  • Consumer 端 filter

  • 死信消息

  • 结合 Spring annotation 使用的简单 API

  • 提供丰富的监控指标

  • 接入 OpenTracing

  • 分布式事务(即将开源)

  • 消息投递轨迹(即将开源)

  • 历史消息的自动备份(即将开源)


参考链接:

https://my.oschina.net/u/1388595/blog/4527740



往期推荐


QMQ:一个去哪儿网内部广泛使用的消息中间件

扫码关注最新动态

我就知道你“在看”

以上是关于QMQ:一个去哪儿网内部广泛使用的消息中间件的主要内容,如果未能解决你的问题,请参考以下文章

内部已使用6年!去哪儿网重磅开源消息队列QMQ

开源消息队列QMQ的设计与实现理念

去哪儿网消息队列设计与实现

设计消息中间件时我关心什么?(解密电商数据一致性与完整性实现,含PPT)

大规模Mesos&Docker在去哪儿网的最佳实践

浅析腾讯云分布式高可靠消息队列服务CMQ架构