去哪儿网正式开源内部使用的消息中间件 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 消息消费者
根据图中的编号描述一下其交互过程
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
更多细节可查阅项目文档。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PYPL 12 月 IDE 榜单:Eclipse 有望超越 Visual Studio
PYPL 12 月的 IDE 指数榜单已发布,前三名依然是 Visual Studio、Eclipse 和Android Studio 。 相比于上个月的 0.29% ,位于第一名的 Visual Studio 与第二名的 Eclipse 本月指数再度接近,仅相差 0.14% 。按这趋势,Eclipse 有望在下个月超越 Visual Studio。 Visual Studio Code 挤下 Sublime Text 和 Atom,从上个月的第八名升至第六名。不过 VS Code 与第五名的 IntelliJ 仍有不小的差距,想要进入前五并非易事。 前三强历年指数走势如下: Atom、Sublime Text 和Visual Studio Code 的指数趋势图: PYPL 指数是非常流行的参考指标,它的原始数据基于 Google trends 。Top IDE Index是 PYPL 通过分析用户在 Google 上搜索不同 IDE 的次数而生成的,某个 IDE 被搜索的次数越多,则认为其越受欢迎,该榜单可以被开发者用来参考决定使用哪个 IDE 进行项目开发。 完整榜单见官网:To...
- 下一篇
key-value 存储系统 etcd 加入 CNCF 沙箱孵化器
在周二举行的 CNCF KubeCon + CloudNativeCon North America 2018 大会上,CNCF 透露etcd 已加入 CNCF 沙箱孵化器。 etcd 是一个分布式一致性键值存储系统,用于共享配置和服务发现,专注于: 简单:良好定义的,面向用户的 API (gRPC) 安全:带有可选客户端证书认证的自动 TLS 快速:测试验证,每秒10000写入 可靠:使用 Raft 适当分布 etcd 发起于已被Red Hat 收购的CoreOS ,目前被许多公司用于生产,并经常与Kubernetes、locksmith、vulcand、Doorman等应用配合使用。 CNCF 目前孵化的项目包括:OpenTracing、Fluentd、Linkerd、gRPC、CoreDNS、containerd、rkt、CNI、Jaeger、Notary、TUF、Vitess、NATS、Helm、Rook、Harbor 和etcd 。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8