淘宝平台进行数据的实时传输: TimeTunnel介绍
在班级工作中遇到似业务场景中的实时流传输数据的访问,所以,淘宝实时数据仓库这个人做了一些研究和了解。
本文介绍的业务场景和淘宝的设计TimeTunnel工具,从淘宝数据仓库团队沟通过程中的图像文字sildes。也参考了一些相关文件。
业务背景
TimeTunnel(简称TT)是一个基于thrift通讯框架搭建的实时传输数据平台,具有高性能、实时性、顺序性、高可靠性、高可用性、可扩展性等特点(基于Hbase)。
眼下TimeTunnel在阿里巴巴广泛的应用于日志收集、数据监控、广告反馈、量子统计、数据库同步等领域。
开源在:TaoCode,代码是开源的。
业务保障:
保证为全部的报表按时准备好所需数据,延迟不超过一分钟。
保证为全部的实时应用提供实时数据,延迟不超过一秒钟。
在整个数据仓库中的角色(图中”TT”字样):
在全量/批量数据导入部分使用的是DHW和DataX。当中DataX貌似是开源的,也是一个不落地的异构数据源传输工具。
而在增量,或者说是流式场景下,这部分数据的採集和导入就依赖了TimeTunnel。
TT对接的Storm和Galaxy流计算模块也简单提一下:
galaxy是一套支持SQL定义业务逻辑的流计算服务化平台
galaxy之于storm,就类似hive之于hadoop的关系
下图为Galaxy的一个架构图:
组件
Time Tunnel大概有几部分组成。TTmanager,Client,Router。Zookeeper。Broker。
TTManager: 负责对外提供队列申请、删除、查询和集群的管理接⼝口;对内故障发现,发起队列迁移
Client是一组訪问timetunnel的api。主要有三部分组成:安全认证api。公布api,订阅api。眼下client支持java。python,php三种语言。
Router:为client提供路由信息,找到为消息队列提供服务的Broker。Router是訪问timetunnel的门户。主要负责路由、安全认证和负载均衡。Client訪问timetunnel的第一步是向Router进行安全认证,假设认证通过,Router依据Client要公布或者订阅的topic对Client进行路由,使Client和正确的Broker建立连接,路由的过程包括负载均衡策略,Router保证让全部的Broker平均地接收Client訪问。
Zookeeper是hadoop的开源项目,其主要功能是状态同步。Broker和Client的状态都存储在这里。
Broker是timetunnel的核心,负责消息的存储转发。承担实际的流量,进行消息队列的读写操作。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGVsaWNr/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
其它
对接数据
- 数据库的日志(如mysql、oracle等)
- server产生的日志(如apache)
- app通过接口产生的数据
队列资源
- 队列是一种资源,TimeTunnel提供队列。
- 队列按需申请,订阅队列接口
持续服务
- 故障发现。发起迁移
- Broker之间流量均衡
- 上下线机器平稳扩容
WhyHBase?
- 顺序scan速度快
- 非常好的扩展性
- 强一致性
- 高并发写
- 底层数据存储基于HDFS
- 开源,社区活跃
- 国内顶级的运维和开发团队
HBase表设计
- 一个Queue相应一个region
- 一组Queue(256/512)相应一个表
- Rowkey:queueID + timestamp + seq +brokerID
- 数据列族+属性列族
- 按天分表,方便删除历史数据
- Pre-Sharding减少compact和split的发生
掌声 :)
版权声明:本文博客原创文章,博客,未经同意,不得转载。
淘宝平台进行数据的实时传输: TimeTunnel介绍的更多相关文章
- PHP--根据手机号-淘宝平台获取归属地运营商信息
//获取手机账号信息 public function get_mobile_area($mobile){ $sms = array('province'=>'', 'supplier'=> ...
- Python抓取淘宝IP地址数据
def fetch(ip): url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip result = [] try: response ...
- 利用PHP从淘宝采集评论和成交数据
如果不想通过淘宝开放平台API获取数据,那么另外一个很好的办法就是采集了.一般来说,采集一个网页上的内容,只需要用CURL获取源代码,然后用正则表达式取出需要的内容就可以,不过如果这样载入一个淘宝的页 ...
- 淘宝杨志丰:OceanBase--淘宝结构化大数据解决之道
时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了“数据就是业务本身”的地步.这种趋势已经让很多相信数据之力量的企业做出改变.恰逢此时,为了让更多的 ...
- 关于淘宝的数据来源,针对做淘宝客网站的淘宝api调用方法
上次写了个淘宝返利模式的博客,直接被移除首页,不知道何故啊.可能是真的跟技术不太刮边. 众所周知,能够支撑一个网站运营的最基础不是程序写的多么好.也不是有多么牛X的运营人员,最主要的是数据,如果没有数 ...
- 淘宝API开发系列---阿里.聚石塔.开放平台的使用
好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...
- thinkphp接收阿里淘宝客数据
坑在于淘宝客api返回的数据对象是SimpleXMLElement Object类型,不转为php的json array类型数据直接扔到thinkphp循环输出中会达不到要的效果,奇奇怪怪的数组,一度 ...
- [TB-Technology] 淘宝在数据处理领域的项目及开源产品介绍
淘宝在数据存储和处理领域在国内互联网公司中一直保持比较靠前的位置,而且由于电子商务领域独特的应用场景,淘宝在数据实时性和大规模计算及挖掘方面一直在国内保持着领先,因此积累了很多的实践的经验和产品. T ...
- 淘宝在hbase中的应用和优化
本文来自于NoSQLFan联合作者@koven2049,他在淘宝从事Hadoop及HBase相关的应用和优化. 对Hadoop.HBase都有深入的了解,本文就是其在工作中对HBase的应用优化小结, ...
随机推荐
- 【7.89%】【BNUOJ 52303】Floyd-Warshall
Time limit: 2 seconds Memory limit: 1024 megabytes In ICPCCamp, there are n cities and m (bidirectio ...
- 远程登录DSM,显示“您没有权限使用本项服务?
远程登录DSM,显示“您没有权限使用本项服务?” https://www.chiphell.com/thread-825297-1-1.html 有可能你单位用的是多wan接入.一般synology不 ...
- C# datatable增加行(datarow)数据为另一个datatable中某行
两个表A和B,两表结构相同.现在需要将A表中部分行拷贝到B表中,直接用 DataTableB.rows.add(dataTableA.rows[0]) 这样的方法式会报"row已经属于A表& ...
- 上传文件是常要处理的事情,使用ajaxFileUpload.js处理比较方便,这里的ajaxFileUpload.js文件修改过的,
上传文件是常要处理的事情,使用ajaxFileUpload.js处理比较方便,这里的ajaxFileUpload.js文件修改过的, Html部分 <input type="file& ...
- MySQL搜索:WHERE
MySQL指定搜索条件进行搜索能够使用where条件. 在SELECT语句中.数据依据WHERE子语句中指定的条件进行过滤,WHERE子语句在表名之后给出. product表例如以下: a 查找价格等 ...
- cat /proc/cpuinfo 引发的思考--CPU 物理封装-物理核心-逻辑核心-超线程之间关系
CPU的物理封装,一个物理封装使用独立的一个CPU物理插槽,共享电源和风扇: CPU物理核心:在一个物理封装中封装了多个独立CPU核心,每一个CPU核心都有自己独立的完整硬件单元. CPU逻辑核心:一 ...
- tig install ncursesw
./configure --prefix=/home/xxx/.local/ --with-ncursesw make[xxx$ ldd src/tig linux-vdso.so.1 => ( ...
- Android JNI--基础篇(二)
编写一个可以与C代码交互的android工程需要如下步骤: 1.JAVA代码中写声明native 方法 2. 创建jni目录,编写c代码,方法名字要对应 3.编写Android.mk文件(交叉编译的规 ...
- 【a703】求逆序对(树状数组的解法)
Time Limit: 10 second Memory Limit: 2 MB 问题描述 给定一个序列a1,a2...an.如果存在i小于j 并且ai大于aj,那么我们称之为逆序对,求给定序列中逆序 ...
- SignalR+AForge实现视频会话[WPF]
原文:SignalR+AForge实现视频会话[WPF] 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/detai ...