Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯开源万亿级分布式消息中间件 TubeMQ

腾讯开源万亿级分布式消息中间件 TubeMQ

作者头像
Java帮帮
发布于 2019-09-17 06:27:02
发布于 2019-09-17 06:27:02
1.7K0
举报

beMQ 是腾讯在 2013 年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传输,经过近 7 年上万亿的海量数据沉淀,目前日均接入量超过 25 万亿条。较之其它开源 MQ 组件,TubeMQ 的优势在海量实践(稳定性 + 性能)和低成本方面。9 月 12 日,腾讯在 ApacheCon 宣布 TubeMQ 开源。

TubeMQ 系统特点:

纯 Java 实现语言

Tube MQ 采用纯 Java 语言开发,便于开发人员快速熟悉项目及问题处理;

引入 Master 协调节点

相比 Kafka 依赖于 Zookeeper 完成元数据的管理和实现 HA 保障不同,Tube MQ 系统采用的是自管理的元数据仲裁机制方式进行,Master 节点通过采用内嵌数据库 BDB 完成集群内元数据的存储、更新以及 HA 热切功能,负责 Tube MQ 集群的运行管控和配置管理操作,对外提供接口等;通过 Master 节点,Tube MQ 集群里的 Broker 配置设置、变更及查询实现了完整的自动化闭环管理,减轻了系统维护的复杂度;

服务器侧消费负载均衡

Tube MQ 采用的是服务侧负载均衡的方案,而不是客户端侧操作,提升系统的管控能力同时简化客户端实现,更便于均衡算法升级;

系统行级锁操作

对于 Broker 消息读写中存在中间状态的并发操作采用行级锁,避免重复问题;

Offset 管理调整

Offset 由各个 Broker 独自管理,ZK 只作数据持久化存储用(最初考虑完全去掉 ZK 依赖,考虑到后续的功能扩展就暂时保留);

消息读取机制的改进

Tube MQ 采用的是消息随机读取模式, 同时为了降低消息时延又增加了内存缓存读写, 对于带 SSD 设备的机器, 增加消息滞后转 SSD 消费的处理,解决消费严重滞后时吞吐量下降以及 SSD 磁盘容量小、刷盘次数有限的问题,使其满足业务快速生产消费的需求;

消费者行为管控

支持通过策略实时动态地控制系统接入的消费者行为,包括系统负载高时对特定业务的限流、暂停消费,动态调整数据拉取的频率等;

服务分级管控

针对系统运维、业务特点、机器负载状态的不同需求,系统支持运维通过策略来动态控制不同消费者的消费行为,比如是否有权限消费、消费时延分级保证、消费限流控制,以及数据拉取频率控制等;

系统安全管控

根据业务不同的数据服务需要,以及系统运维安全的考虑,Tube MQ 系统增加了 TLS 传输层加密管道,生产和消费服务的认证、授权,以及针对分布式访问控制的访问令牌管理,满足业务和系统运维在系统安全方面的需求;

资源利用率提升改进

相比于 Kafka,Tube MQ 采用连接复用模式,减少连接资源消耗;通过逻辑分区构造,减少系统对文件句柄数的占用,通过服务器端过滤模式,减少网络带宽资源使用率;通过剥离对 Zookeeper 的使用,减少 Zookeeper 的强依赖及瓶颈限制;

客户端改进

基于业务使用上的便利性以,我们简化了客户端逻辑,使其做到最小的功能集合,我们采用基于响应消息的接收质量统计算法来自动剔出坏的 Broker 节点,基于首次使用时作连接尝试来避免大数据量发送时发送受阻。

Github 开源地址: https://github.com/Tencent/TubeMQ

TubeMQ 国内镜像地址: https://git.code.tencent.com/Tencent_Open_Source/TubeMQ

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java帮帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯万亿级分布式消息中间件TubeMQ正式开源
TubeMQ是腾讯在2013年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传输,经过近7年上万亿的海量数据沉淀,目前日均接入量超过25万亿条。较之于众多明星的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有着比较好的核心优势。 TubeMQ 捐赠 Apache 基金会 9月12日,Apache软件基金会成立20周年之际,腾讯在ApacheCon宣布TubeMQ 开源。TubeMQ 启动计划捐赠 Apache 基金会的流程。 TubeMQ系统特点
腾讯开源
2019/09/16
1.3K0
腾讯万亿级分布式消息中间件TubeMQ正式开源
腾讯消息中间件TubeMQ开源了
TubeMQ是腾讯大数据在2013年开始研发的分布式消息中间件系统(MQ),专注服务大数据场景下海量数据的高性能存储和传输。经过近7年上万亿的海量数据沉淀,较之于众多的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有一定的优势。一个礼拜前,TubeMQ开源了,本篇博文转载自官方公布的文档。博主花了半天搭建开发环境到运行,到发送消息接收消息体验下来,发现不管是腾讯的TubeMQ,还是rocketmq,他们的架构都或多或少参考了kafka的设计,所以上手会非常快。而且,开源版本很可能是内部版本的剖离版,刚开源还没来得及打磨,没做全面的验证测试。因为博主在测试过程中发现了一个特别大的bug,consumer接收消息时导致CPU100%,而且是必现的,有兴趣的可点击issue查看,博主提交issue后,官方开发立马就跟进了,这速度也是没谁了。相信不久后TubeMQ会是继kafka和rocketmq后又一个非常不错的选择。TubeMQ也有捐赠给Apache的想法,Apache中国内的顶级项目越来越多了,国内的开源大环境也越来越好了
kl博主
2023/11/18
4270
腾讯消息中间件TubeMQ开源了
腾讯自研万亿级消息中间件TubeMQ为什么要捐赠给Apache?
导语 | 近日,云+社区技术沙龙“腾讯开源技术”圆满落幕。本次沙龙邀请了多位腾讯技术专家围绕腾讯开源与各位开发者进行探讨,深度揭秘了腾讯开源项目TencentOS tiny、TubeMQ、Kona JDK、TARS以及MedicalNet。本文是对张国成老师演讲的整理。
腾讯云开发者
2020/01/07
1.4K0
spring整合各种中间件(RocketMQ、kafka、RabbitMQ、TubeMQ、NSQ)-腾讯开源【TubeMQ】
上文:spring整合各种中间件(RocketMQ、kafka、RabbitMQ、ActiveMQ、ZeroMQ)-ZeroMQ
逍遥壮士
2021/05/24
8640
spring整合各种中间件(RocketMQ、kafka、RabbitMQ、TubeMQ、NSQ)-腾讯开源【TubeMQ】
Pulsar与Rocketmq、Kafka、Inlong-TubeMQ,谁才是消息中间件的王者?
导语 | Pulsar作为下一代消息中间件的典型代表,在设计和实现上面都具备很好的前瞻性,综合考量了业界现存的一些比较常用的、优秀的消息中间的架构设计、适用场景、运营中的问题等,如目前用的比较多的Kafka、Rocketmq、Inlong-TubeMQ等。本文仅从设计角度出发,说明下Pulsar与Kafka、Rocketmq及腾讯开源的Inlong-TubeMQ在实现上的几点区别和可能遇到的问题,供大家参考。 一、云原生多租户设计 (一)分级命名 Pulsar原生支持多租户设计,非常适合作为云产品进
腾讯云开发者
2021/10/27
9000
如何设计一个消息中间件? 消息中间件的总体架构
消息是MQ中最小的概念,本质上就是一段数据,它能被一个或者多个应用程序所理解,是应用程序之间传递的信息载体。
一个会写诗的程序员
2020/04/15
2.5K0
vivo 超大规模消息中间件实践之路
在线业务侧主要从RocketMQ集群部署架构、平台系统架构、日常运维操作平台、监控告警一体化实践以及vivo如何通过建设AMQP消息网关的方式完成所有在线业务服务从RabbitMQ到RocketMQ的业务无感迁移,实现了在线业务消息中间件组件的统一。
2020labs小助手
2023/01/30
5780
分布式高可靠消息中间件-Hippo
前言 随着大数据产品的日渐丰富以及数据应用场景需求的增加,TDBank作为腾讯大数据平台的数据接入环节的位置也越发显得重要(见下图)。截止目前为止TDBank日均接入数据已经超过2W亿条每天(约600TB/天),并且数据量还在持续不断上升。Tube 作为整个数据接入体系的存储层发挥着重要作用。Tube作为一个面向高吞吐高性能的分布式消息中间件,其性能及稳定性在万亿级数据体量下经受住了考验。 但对于一些高价值、高敏感度的数据时,我们亟需一个高可靠高可用的消息中间件。(Tube在极端场景下,比如物理宕机无法恢
腾讯大数据
2018/01/26
2.2K1
分布式消息队列
作者:vincentchma,腾讯 IEG 后台开发工程师 一、消息队列的演进 分布式消息队列中间件是是大型分布式系统中常见的中间件。消息队列主要解决应用耦合、异步消息、流量削锋等问题,具有高性能、高可用、可伸缩和最终一致性等特点。消息队列已经逐渐成为企业应用系统内部通信的核心手段,使用较多的消息队列有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、Pulsar 等,此外,利用数据库(如 Redis、MySQL 等)也可实现消息队列的部分基本功能。 1.基于 OS 的
腾讯技术工程官方号
2021/09/28
2.2K0
为什么你要使用这么强大的分布式消息中间件——kafka
这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算、统计、分析,这个时候就可以使用消息系统,尤其是分布式消息系统!
Java高级架构
2018/12/12
1.5K0
为什么你要使用这么强大的分布式消息中间件——kafka
消息中间件架构讨论
接上一篇的《业务方对消息中间件的需求》,在可用性和可靠性的基础上,讨论各种架构的优缺点,最后给出自己关于消息中间件的架构思考。
林一
2018/07/24
6890
消息中间件架构讨论
RocketMQ分布式消息中间件 理论介绍
Broker 通过提供轻量级的 Topic 和 Queue 机制来进行消息存储。 Broker 支持 Push 和 Pull 模式,包含容错机制,并且提供了强大的峰值填充和以原始时间顺序累计数千亿条消息的能力。 Broker 还提供灾难恢复,丰富的指标统计数据和警报机制,而传统的消息传递系统都缺乏这些机制
Java帮帮
2019/12/13
1.5K0
RocketMQ分布式消息中间件 理论介绍
千亿级、大规模:腾讯超大 Apache Pulsar 集群性能调优实践
导语 近期,腾讯 TEG 数据平部 MQ 团队开发部署了一套底层运维指标性能分析系统(本文简称 Data 项目) ,目前作为通用基础设施服务整个腾讯集团。该系统旨在收集性能指标、上报数据以用于业务的运维监控,后续也将延用至前后端实时分析场景。 腾讯 Data 项目选用 Apache Pulsar 作为消息系统,其服务端采用 CVM 服务器(Cloud Virtual Machine,CVM)部署,并将生产者和消费者部署在 Kubernetes 上,该项目 Pulsar 集群是腾讯数据平台部 MQ 团队接入的
腾讯云中间件团队
2022/07/27
1.1K0
千亿级、大规模:腾讯超大 Apache Pulsar 集群性能调优实践
消息中间件选型
常用的 MQ组件有 Kafka、RabbitMQ、RocketMQ、ActiveMQ、ZeroMQ、MetaMQ。当然 Kafka的功能更加强大,其它 MQ都有自己的特点和优势,如下:
Java架构师必看
2021/04/25
2K0
消息中间件选型
消息中间件
https://www.open-open.com/lib/view/open1421150566328.html
Yano_nankai
2021/01/26
1.1K0
消息中间件
消息中间件基础知识-从RabbitMQ、RocketMQ、Kafka到Pulsar
本文梳理笔者的MQ知识,从消息中间件的基础知识讲起,在有了基础知识后,对市面上各主流的消息中间件进行详细的解析,包括 RabbitMQ、RocketMQ、Kafka、Pulsar,最后再横向对比这几款主流的消息中间件。
知码行者
2023/04/03
1K0
消息中间件的对比
分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。
烂猪皮
2018/08/03
1.8K0
消息中间件的对比
11月腾讯云微服务&中间件产品动态
腾讯云中间件 - 微服务团队产品2021年11月简报: API网关:支持参数流控插件、支持自定义响应体插件;支持直通TKE Pod,可通过API网关享受认证鉴权、流量控制、灰度分流等能力。 微服务引擎 TSE 注册配置中心 :Nacos组件实现客户端与控制台访问内网方式与外网方式解耦,用户自主通过开关控制。 微服务引擎 TSE 服务治理中心:PolarisMesh(北极星)治理中心支持多语言服务注册与发现、支持K8s service注册至PolarisMesh(北极星),同时增强了可观测性能力。
腾讯云中间件团队
2021/12/03
1.7K0
案例推荐|千亿级、大规模:腾讯超大 Apache Pulsar 集群性能调优实践
近期,腾讯 TEG 数据平部 MQ 团队开发部署了一套底层运维指标性能分析系统(本文简称 Data 项目) ,目前作为通用基础设施服务整个腾讯集团。该系统旨在收集性能指标、上报数据以用于业务的运维监控,后续也将延用至前后端实时分析场景。
从大数据到人工智能
2022/09/08
7210
案例推荐|千亿级、大规模:腾讯超大 Apache Pulsar 集群性能调优实践
【系统架构】消息中间件的架构和原理
消息中间件的作用就是用来异步化并发能力的一个载体,不仅如此,它仍然需要在架构上保证很多能力,高可用,高并发,可扩展,可靠性,完整性,保证顺序等,光是这些都已经让各种设计者比较头疼了; 更有一些变态的需求,例如慢消费,不可重复等需要花的设计代价是相当高的,所以不要盲目的迷信开源大牛,对于很多机制,几乎都要重建;建立一个符合所有业务,好用,通用的私有云,没那么简单。
一个会写诗的程序员
2020/04/16
6650
推荐阅读
相关推荐
腾讯万亿级分布式消息中间件TubeMQ正式开源
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档