QMQ:一个去哪儿网内部广泛使用的消息中间件
Posted FOSS Lab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QMQ:一个去哪儿网内部广泛使用的消息中间件相关的知识,希望对你有一定的参考价值。
整理 | 叶子
一、软件介绍
QMQ 是去哪儿网内部广泛使用的消息中间件,自2012年诞生以来在去哪儿网所有业务场景中广泛的应用,包括跟交易息息相关的订单场景;也包括报价搜索等高吞吐量场景。目前在公司内部日常消息 qps 在 60W 左右,生产上承载将近 4W+ 消息 topic ,消息的端到端延迟可以控制在 10ms 以内。
存储还是分了三个部分,分别是message log, consume log, pull log。
如图所示,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:一个去哪儿网内部广泛使用的消息中间件的主要内容,如果未能解决你的问题,请参考以下文章