去哪儿网正式开源内部使用的消息中间件 QMQ

栏目: 软件资讯 · 发布时间: 5年前

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

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

QMQ 主要提供以下特性:

  • 异步实时消息

  • 延迟/定时消息

  • 基于 Tag 的服务端过滤

  • Consumer 端幂等处理支持

  • Consumer 端 filter

  • 死信消息

  • 结合 Spring annotation 使用的简单 API

  • 提供丰富的监控指标

  • 接入 OpenTracing

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

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

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

架构概览 

下图是 QMQ 中各组件及其交互图:

  • meta server 提供集群管理和集群发现的作用

  • server 提供实时消息服务

  • delay server 提供延时/定时消息服务,延时消息先在 delay server 排队,时间到之后再发送给 server

  • producer 消息生产者

  • consumer 消息消费者

去哪儿网正式开源内部使用的消息中间件 QMQ

根据图中的编号描述一下其交互过程

  1. delay server 向 meta server注册

  2. 实时 server 向 meta server注册

  3. producer 在发送消息前需要询问 meta server 获取 server list

  4. meta server 返回 server list 给 producer (根据 producer 请求的消息类型返回不同的 server list )

  5. producer 发送延时/定时消息

  6. 延时时间已到,delay server 将消息投递给实时 server

  7. producer 发送实时消息

  8. consumer 需要拉取消息,在拉取之前向 meta server 获取 server list (只会获取实时 server 的 list )

  9. meta server 返回 server list 给 consumer

  10. consumer 向实时 server 发起 pull 请求

  11. 实时 server 将消息返回给 consumer

更多细节可查阅 项目文档


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出Node.js

深入浅出Node.js

朴灵 / 人民邮电出版社 / 2013-12-1 / CNY 69.00

本书从不同的视角介绍了 Node 内在的特点和结构。由首章Node 介绍为索引,涉及Node 的各个方面,主要内容包含模块机制的揭示、异步I/O 实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据Buffer 的细节、Node 中的网络编程基础、Node 中的Web 开发、进程间的消息传递、Node 测试以及通过Node 构建产品需要的注意事项。最后的附录介绍了Node 的安装、调试、编码......一起来看看 《深入浅出Node.js》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具