去哪儿网正式开源内部使用的消息中间件 QMQ
2023-04-18 16:09:34 时间
去哪儿网近日宣布开源其内部广泛使用的消息中间件 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 消息消费者
根据图中的编号描述一下其交互过程
- delay server 向 meta server注册
- 实时 server 向 meta server注册
- producer 在发送消息前需要询问 meta server 获取 server list
- meta server 返回 server list 给 producer (根据 producer 请求的消息类型返回不同的 server list )
- producer 发送延时/定时消息
- 延时时间已到,delay server 将消息投递给实时 server
- producer 发送实时消息
- consumer 需要拉取消息,在拉取之前向 meta server 获取 server list (只会获取实时 server 的 list )
- meta server 返回 server list 给 consumer
- consumer 向实时 server 发起 pull 请求
- 实时 server 将消息返回给 consumer
更多细节可查阅项目文档。
相关文章
- PostgreSQL表名大写还是小写
- linux怎么启动postgresql
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/02 17:30:03
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/02 17:00:03
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/02 16:15:03
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/02 15:45:02
- postgresql无法启动服务怎么办
- postgresql oid是什么
- postgresql如何导出excel
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/02 14:30:03
- qt如何使用postgresql
- 怎么启动postgresql服务器
- postgresql有哪些优点
- postgresql错误1053怎么解决
- postgresql是什么意思
- 怎么验证postgresql是否安装成功
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/01 18:00:01
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理17:45:02
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/01 17:30:02
- 免费代理IP – 免费HTTP代理IP_SOCKS5代理服务器_优质IP代理2022/12/01 16:30:03