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

<div class="rich_media_content" id="js_content">
                

                

                
                
                <p></p><p><img class="rich_pages" src="https://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/W7W9IgARmGicYBy5305vSRPrtkeY3acFiaV4jbvGycAIiaURmfP0wicsC1hYZp2kTsD1txD5brJEBLWerJCb8waVkA/640?wx_fmt=png" alt="640?wx_fmt=png"><span></span></p><p></p><p><span>TubeMQ是腾讯在2013年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传输,经过近7年上万亿的海量数据沉淀,目前日均接入量超过25万亿条。较之于众多明星的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有着比较好的核心优势。</span><span></span></p><p><span></span></p><div><div><div><div><div><div></div></div><div><div></div></div></div><div><div><p><strong>TubeMQ 捐赠&nbsp;Apache&nbsp;基金会</strong></p></div></div><div><div><div></div></div><div><div><br></div></div></div></div></div></div><p><span>9月12日,Apache软件基金会成立20周年之际,腾讯在ApacheCon宣布TubeMQ 开源。TubeMQ 启动计划捐赠 Apache 基金会的流程。</span><span></span></p><p><span></span></p><p><img class="rich_pages" src="https://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_jpg/W7W9IgARmGicYBy5305vSRPrtkeY3acFiauiblW7DImj9CZUCLTqibT7xwseicvyGr4CeCkCjnCpEjxxuXEiaMX5l7hg/640?wx_fmt=jpeg" alt="640?wx_fmt=jpeg"></p><p><span></span></p><p><img class="rich_pages" src="https://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_jpg/W7W9IgARmGicYBy5305vSRPrtkeY3acFiaFoicS7TQj1WJpPibOmmJ4FJOWjRzsQWKIwPcpb8aOw8GqGfMH1x90M0w/640?wx_fmt=jpeg" alt="640?wx_fmt=jpeg"></p><p></p><div><div><div><div><div><div></div></div><div><div></div></div></div><div><div><p><strong>TubeMQ系统特点</strong></p></div></div><div><div><div></div></div><div><div><br></div></div></div></div></div></div><p><strong><span>1. 纯Java实现语言</span></strong></p><p><span>Tube MQ采用纯Java语言开发,便于开发人员快速熟悉项目及问题处理;</span></p><p></p><p><strong><span>2. 引入Master协调节点</span></strong></p><p><span>相比Kafka依赖于Zookeeper完成元数据的管理和实现HA保障不同,Tube MQ系统采用的是自管理的元数据仲裁机制方式进行,Master节点通过采用内嵌数据库BDB完成集群内元数据的存储、更新以及HA热切功能,负责Tube MQ集群的运行管控和配置管理操作,对外提供接口等;</span><span>通过Master节点,Tube MQ集群里的Broker配置设置、变更及查询实现了完整的自动化闭环管理,减轻了系统维护的复杂度;</span></p><p></p><p><strong><span>3. 服务器侧消费负载均衡</span></strong></p><p><span>Tube MQ采用的是服务侧负载均衡的方案,而不是客户端侧操作,提升系统的管控能力同时简化客户端实现,更便于均衡算法升级;</span></p><p></p><p><strong><span>4. 系统行级锁操作</span></strong></p><p><span>对于Broker消息读写中存在中间状态的并发操作采用行级锁,避免重复问题;</span></p><p></p><p><strong><span>5.&nbsp;Offset管理调整</span></strong></p><p><span>Offset由各个Broker独自管理,ZK只作数据持久化存储用(最初考虑完全去掉ZK依赖,考虑到后续的功能扩展就暂时保留);</span></p><p></p><p><strong><span>6. 消息读取机制的改进</span></strong></p><p><span>Tube MQ采用的是消息随机读取模式,同时为了降低消息时延又增加了内存缓存读写,对于带SSD设备的机器,增加消息滞后转SSD消费的处理,解决消费严重滞后时吞吐量下降以及SSD磁盘容量小、刷盘次数有限的问题,使其满足业务快速生产消费的需求;</span></p><p></p><p><strong><span>7. 消费者行为管控</span></strong></p><p><span>支持通过策略实时动态地控制系统接入的消费者行为,包括系统负载高时对特定业务的限流、暂停消费,动态调整数据拉取的频率等;</span></p><p></p><p><strong><span>8. 服务分级管控</span></strong></p><p><span>针对系统运维、业务特点、机器负载状态的不同需求,系统支持运维通过策略来动态控制不同消费者的消费行为,比如是否有权限消费、消费时延分级保证、消费限流控制,以及数据拉取频率控制等;</span></p><p></p><p><strong><span>9. 系统安全管控</span></strong></p><p><span>根据业务不同的数据服务需要,以及系统运维安全的考虑,Tube MQ系统增加了TLS传输层加密管道,生产和消费服务的认证、授权,以及针对分布式访问控制的访问令牌管理,满足业务和系统运维在系统安全方面的需求;</span></p><p></p><p><strong><span>10. 资源利用率提升改进</span></strong></p><p><span>相比于Kafka,Tube MQ采用连接复用模式,减少连接资源消耗;</span><span>通过逻辑分区构造,减少系统对文件句柄数的占用,通过服务器端过滤模式,减少网络带宽资源使用率;</span><span>通过剥离对Zookeeper的使用,减少Zookeeper的强依赖及瓶颈限制;</span></p><p></p><p><strong><span>11. 客户端改进</span></strong></p><p><span>基于业务使用上的便利性以,我们简化了客户端逻辑,使其做到最小的功能集合,我们采用基于响应消息的接收质量统计算法来自动剔出坏的Broker节点,基于首次使用时作连接尝试来避免大数据量发送时发送受阻。</span><span></span></p><p></p><div><div><div><div><div><div></div></div><div><div></div></div></div><div><div><p><strong>欢迎开源协同</strong></p></div></div><div><div><div></div></div><div><div><br></div></div></div></div></div></div><p><span>我们热烈欢迎大家参与到TubeMQ及项目各个模块的开源协同中来,如果在使用TubeMQ项目时遇到了问题,或者对改进TubeMQ项目有一个想法,欢迎提出你的issue!</span></p><p><span></span></p><p><span></span></p><div><div><div></div><div><div><div><p><strong><span>TubeMQ 正式开源</span></strong></p><p><span>Github 开源地址:</span></p><p><span>https://github.com/Tencent/TubeMQ</span></p><p><span>(点击文末阅读原文直接访问)</span></p><p><span>请给&nbsp;TubeMQ 一个 Star !</span></p><p><span>欢迎提出你的 issue 和 PR!</span></p><p><span>TubeMQ 国内镜像地址:</span><span>https://git.code.tencent.com/Tencent_Open_Source/TubeMQ</span></p><p><span>(登录后才能访问公开项目)</span></p><p><img src="https://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/W7W9IgARmGibiaN2rYSr7ZeVTpibnbsIarj1LZdw3puQJJ8nJtWLfAVUv5yo3RTeWKjzXpEj4msk13iakJZxkUr6Iw/640?wx_fmt=png" alt="640?wx_fmt=png"></p><p><span>腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像</span></p></div></div></div></div></div><p><span></span></p><p></p>
            </div>
                                  </div>
posted @ 2019-09-28 14:07  星朝  阅读(1197)  评论(0编辑  收藏  举报