腾讯万亿级大数据组件 TubeMQ 正式开源
近日,在 ApacheCon 2019 上,腾讯开源管理委员会委员、腾讯开源联盟主席、Apache 软件基金会 Member 堵俊平介绍了腾讯开源路线图,宣布腾讯万亿级分布式消息中间件 TubeMQ 正式对外开源,并计划捐赠给 Apache 基金会。
▲ 腾讯开源路线图
TubeMQ 的原型是腾讯数据平台部在2013年自研的分布式消息中间件系统(MQ),专注于大数据场景下海量数据的高性能存储和传输,长期服务微信支付、腾讯视频、广点通等产品。
▲ TubeMQ 项目介绍
TubeMQ 主要特性:
- 纯 Java 语言实现
- 引入 Master 协调节点:相比 Kafka 依赖于 Zookeeper 完成元数据的管理和实现 HA 保障不同,TubeMQ 系统采用的是自管理的元数据仲裁机制方式进行,Master 节点通过采用内嵌数据库 BDB 完成集群内元数据的存储、更新以及 HA 热切功能,负责 TubeMQ 集群的运行管控和配置管理操作,对外提供接口等;通过 Master 节点,TubeMQ 集群里的 Broker 配置设置、变更及查询实现了完整的自动化闭环管理,减轻了系统维护的复杂度
- 服务器侧消费负载均衡:TubeMQ 采用的是服务侧负载均衡的方案,而不是客户端侧操作,提升系统的管控能力同时简化客户端实现,更便于均衡算法升级
- 系统行级锁操作:对于 Broker 消息读写中存在中间状态的并发操作采用行级锁,避免重复问题
- Offset 管理调整:Offset 由各个 Broker 独自管理,ZK 只作数据持久化存储用(最初考虑完全去掉ZK依赖,考虑到后续的功能扩展就暂时保留)
- 消息读取机制的改进:TubeMQ 采用的是消息随机读取模式,同时为了降低消息时延又增加了内存缓存读写,对于带 SSD 设备的机器,增加消息滞后转 SSD 消费的处理,解决消费严重滞后时吞吐量下降以及 SSD 磁盘容量小、刷盘次数有限的问题,使其满足业务快速生产消费的需求
- 消费者行为管控:支持通过策略实时动态地控制系统接入的消费者行为,包括系统负载高时对特定业务的限流、暂停消费,动态调整数据拉取的频率等;
- 服务分级管控:针对系统运维、业务特点、机器负载状态的不同需求,系统支持运维通过策略来动态控制不同消费者的消费行为,比如是否有权限消费、消费时延分级保证、消费限流控制,以及数据拉取频率控制等
- 系统安全管控:根据业务不同的数据服务需要,以及系统运维安全的考虑,TubeMQ 系统增加了 TLS 传输层加密管道,生产和消费服务的认证、授权,以及针对分布式访问控制的访问令牌管理,满足业务和系统运维在系统安全方面的需求
- 资源利用率提升改进:相比于 Kafka,TubeMQ 采用连接复用模式,减少连接资源消耗;通过逻辑分区构造,减少系统对文件句柄数的占用,通过服务器端过滤模式,减少网络带宽资源使用率;通过剥离对 Zookeeper 的使用,减少 Zookeeper 的强依赖及瓶颈限制
- 客户端改进:基于业务使用上的便利性以,我们简化了客户端逻辑,使其做到最小的功能集合,我们采用基于响应消息的接收质量统计算法来自动剔出坏的 Broker 节点,基于首次使用时作连接尝试来避免大数据量发送时发送受阻
堵俊平介绍,腾讯每天要处理规模惊人的数据。为支持海量业务,腾讯组建了包含存储层、数据管理层及分析层 3 层结构的数据湖协同方案,向下管理多种数据引擎,向上支撑多种数据应用需求。TubeMQ 就是来源于腾讯数据湖存储层的消息中间件系统,支撑着海量数据的流入和运转。经过近7年、万亿规模的海量数据沉淀,TubeMQ 目前日均接入量超过 25 万亿条消息。
▲ 腾讯数据湖方案,其绝大多数组件由 Apache 的开源项目组成
堵俊平介绍到,腾讯计划将 TubeMQ 捐赠给 Apache 基金会,目前已经启动了相关的孵化流程。
查看项目:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RMS 从自由软件基金会与 MIT 离职
自由软件基金会官网显示,基金会创始人兼主席、自由软件运动发起人 Richard M. Stallman(RMS)辞去主席职务并辞去董事会职务。 而另一边,stallman.org邮件列表显示,RMS 已经从麻省理工学院(MIT)计算机科学与人工智能实验室(CSAIL)辞职。RMS 在邮件中写到: To the MIT community, I am resigning effective immediately from my position in CSAIL at MIT. I am doing this due to pressure on MIT and me over a series of misunderstandings and mischaracterizations. Richard Stallman (我将立即辞去 MITCSAIL 的职务,这么做是因为 MIT 和我因为一系列误解和误读而感到压力。) 此前,亿万富翁 Jeffrey Epstein 涉嫌性侵和拐卖少女案件引起热议,因为其中牵连到了许多 MIT 学者,其中最著名的是人工智能先驱、人工神经网络创始人、...
- 下一篇
OSChina 周三乱弹 —— 投篮的一霎那,你突然心悸
Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享ろん的单曲《First Love (原唱:宇多田ヒカル / produced by keeno)》: 《First Love (原唱:宇多田ヒカル / produced by keeno)》- ろん 手机党少年们想听歌,请使劲儿戳(这里) @天朝八阿哥 :每天请一个小时假再去上班,感觉神清气爽!实践证明:8点半上班不科学! 其实你早点上床睡觉就最科学了, “企鹅:帮我关一下灯 蟹蟹。” 不然身体早晚受不了, @FalconChen :早上突然心悸,这样熬夜会不会猝死啊,有点害怕? 你心悸是看到喜欢的妹子了么? “投篮的一霎那,你突然心悸。” 上班的时候, 你就没精神头, 从你 一天中的“眼睛睁开度” 就能看出来。 @开源中国首席屌炸天 : 一天中的“眼睛睁开度” 如果我是一名包租公就好了, 每天就是收收钱, @Daniel-01 :我的志愿是做一名包租公 , 每天就着红酒吃生蚝 , 过上对社会毫无意义的生活 @韦小仇 :有钱人的生活往往就是这么朴实无华,且枯燥 而你的真实生活是这样的, 忙完...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7安装Docker,走上虚拟化容器引擎之路