2026-02-21 22:33:05
360内部消息队列系统Qbus介绍
Qbus简介
Qbus是360团队基于Kafka深度定制的一款符合360内部特点的消息队列系统。其起源可以追溯到LinkedIn用于日志处理的分布式消息队列Kafka,为了满足360对用户行为(如登录、浏览、点击、分享、喜欢)以及系统运行日志(如CPU、内存、磁盘、网络、系统及进程状态)进行实时处理的需求,团队决定开发一个更加适合公司内部现状和业务特点的消息队列系统。相较于传统队列,Qbus在性能和功能上都有了显著提升。
Qbus特点
Qbus应用场景
Qbus与其它队列对比优势
与Gearman、JMS等消息队列系统相比,Qbus具有以下优势:
Qbus原理介绍
原理图
(以下图片展示了Qbus的原理图,由于文本格式限制,无法直接展示图片,但可以通过提供的链接查看)
meta信息
Qbus的meta信息包含集群broker的信息(如ip:port)、topic的存储位置、partition的消费位置信息、所有consumer的信息、当值的coordinator以及agent配置和存活状态信息等。
消息路径
一条消息从生产到消费的路径如下:
(以下图片展示了消息从生产到消费的路径,由于文本格式限制,无法直接展示图片,但可以通过提供的链接查看)
broker集群
Qbus的broker集群由多个完全对等的broker组成,可以平滑扩容,提高系统的可扩展性和高可用性。
(以下图片展示了broker集群的架构,由于文本格式限制,无法直接展示图片,但可以通过提供的链接查看)
Broker存储
(以下图片展示了Broker的存储结构,由于文本格式限制,无法直接展示图片,但可以通过提供的链接查看)
Broker高性能的关键
性能
Qbus支持php、C/C++、java版本的SDK,性能与消息大小的趋势图如下:
(以下图片展示了Qbus的性能趋势图,由于文本格式限制,无法直接展示图片,但可以通过提供的链接查看)
代码编写示例(java)
(以下图片展示了Producer的代码示例,由于文本格式限制,无法直接展示代码,但可以通过提供的链接查看)
(以下图片展示了Consumer的代码示例,由于文本格式限制,无法直接展示代码,但可以通过提供的链接查看)
QBus相对于Kafka的改进
综上所述,Qbus是360团队基于Kafka深度定制的一款符合公司内部特点的消息队列系统,具有消息持久化、高吞吐量、分布式架构、支持订阅等特点,并在性能、易用性、可维护性等方面进行了多项改进和优化。