TencentAnalytics腾讯网站分析系统的架构在Redis数据存储等方面的技术运用可圈可点
2020-12-31 13:50:33 阅读(151) 评论(0)
TA(TencentAnalytics,腾讯分析)是第三方站长的免费网站分析系统,在数据稳定性和及时性方面受到站长的广泛好评,其第二次实时数据更新频率也得到了业界的认可。本文将从实时数据处理、数据存储等方面带您深入探索TA的系统架构和实现原理。网站分析(WebAnalytics)主要是指根据网站的用户浏览行为,分析网站的点击流数据和运营数据,监控网站的运营状况,为网站的优化提供决策依据。网站分析系统已成为网站管理员日常运营中不可缺少的工具。业内流行的网站分析系统主要包括谷歌Analytics、CNZZ、百度统计等产品。TA作为网站分析产品的新星,在社区分析、用户肖像、网站工具等方面形成了自己的特点,其第二次实时数据更新频率是行业领导者。TA在数据稳定性、准确性和及时性方面也享有良好的声誉。随着接入业务量的不断发展,TA每天需要处理和计算的数据量达到TB级。要实现如此庞大的数据量,并确保系统的高可用性并不容易。TA的实时计算框架借鉴了业内流行的一些流式计算系统的思路。虽然在系统建设中遇到了一些问题,但由于大量数据的实时处理和实时存储具有一定的典型性和通用性,我分享了TA的解决方案,希望能给你一些启示。TA的基本原理和系统架构的基本原理是通过嵌入站长网站的JavaScript脚本收集用户访问行为数据,并发送TA收集群。收集群收到数据后,将其过滤、编码和格式化,然后继续向后分发。数据处理集群负责按照业务逻辑计算数据,并将计算结果“写入”到数据存储集群,最后向站长显示结果数据。TA的基本原理如图所示。TA背景是一个完整的数据流处理系统:JavaScript收集的用户行为数据像河流一样流入TA背景,清洗计算后流出TA存储集群,供用户浏览和查询。TA的具体结构和核心部件如图所示。TA的背景分为离线和实时两部分:实时部分负责系统的主要功能计算,数据更新频率为秒;离线部分负责复杂的关联分析和跨天计算,数据更新频率为天。HttpAccess:主要负责HTTP协议的分析、数据的清理和格式化。ESC:EventStreamingCoder,它主要负责将系统中不可枚举的数据类型编码成*,并将相应的关系持久化。ESP:EventStreamingProcessor,主要负责根据站点和UID重新组织数据并计算PV、UV、网站分析指标,如停留时间和跳失率。ESA:EventStreamingAggregator,根据网站总结ESP计算的数据,并将其写入Redis。Center:负责系统配置、数据路由管理、容灾切换功能的系统中心节点。Logserver:负责将Access收集到的数据以字符串的形式写入文件,并上传到TDCP。TDCP:腾讯分布式计算平台负责离线数据的计算,结果数据由脚本写入MySQL。在实时解决方案之前,TA每天需要处理数十万个网站的TB级数据。处理后的URL数量仍然是数亿,系统存储的Key数量超过10亿。TA实时系统面临的主要挑战是如何高效、低延迟地处理如此多的业务数据。TA解决方案的主要思路可以概括为数据全二进制化、全内存计算和NoSQL存储。以下是实时计算和实时存储两个子系统的深入讨论。对于计算子系统,我们参考了Hadoopp、S4和Storm等开源项目试图设计为一个更通用、更可扩展的全内存实时Event处理系统(或流行术语称为流实时Event处理系统)。对此类系统,我们设计支持的典型输入输出过程大致如图所示。实时计算系统的设计要点是数据组织、协议和增量计算模型。数据组织。考虑到内存和计算过程的性能要求,我们将所有非int数据类型转换为int。可列举的数据类型将其配置映射成唯一的int;不可枚举的数据类型,使用MD5算法近似得到唯一的int。例如,如果页面URL属于无数类型,则通过MD5算法近似预处理获得唯一的int;UserAgent中的浏览器类型字符串属于可枚举数据,则预先将映射配置为int。该方法节省了更多的内存,提高了整个系统的计算性能。协议。在协议层面,我们首先设计实现了一种可扩展的Event结构,支持半自动序列化/反序列化机制(参考msgpack设计)和紧凑的二进制编码(基于Zigzag编码,参考Protobuf的实现)。这种Event结构在流式高性能I/O(网络传输和持久化)表现相当好。实时计算子系统设计为Event实现,可以扩展任何支持。增量计算模型。增量计算模型是指定义为以下三个部分的基本计算过程(如图所示)Processor:负责计算和处理具体的业务逻辑。DataHolder:负责保存增量结果数据和计算所依赖的中间状态数据。Emitter:负责定期输出清空增量计算结果。在流程方面,分为以下三个步骤(如图所示)。接收Event,计算处理—Processor。保存计算结果,计算依赖于中间数据—DataHolder。定期触发输出时间片中的计算结果,清空计算结果—Emitter。增量计算模型削弱了分布式系统中单台机器的交易状态,简化了分布式计算系统的实现,提高了整个系统的性能。实时存储在TA系统中,实时存储的数据是需要通过Web显示层读取的统计数据。这类数据有两个典型特征。频繁更新写作。更新频率取决于系统的实时性,每个统计结果的更新频率最快可达1秒。少量读取。与上述更新相比,“少量”。统计数据可根据业务逻辑分为两类。固定数据:主要是URL、搜索关键词等数据。理论上,这部分数据不断增加,不会修改旧数据。动态数据:主要是经常更新的结果统计数据。这部分数据需要不断更新。例如,www.qq.PV和UV在com域名下的统计结果。考虑到TA实时统计数据的特点,我们选择NoSQL实现我们的存储系统;同时,LevelDB和Redis分别用于存储两种不同的数据类型。实时存储Redista的主要部件。考虑到TA系统本身是一个相对完善的分布式集群系统,我们需要的存储部件是“notclustering,butsharding”。也就是说,像HBase和MongoDB这样的“重武器”并不适合TA,NoSQL数据库中的“瑞士军刀”Redis以其出色的性能进入了我们的视野。同时,TA的结果数据类型也比较丰富,就像站点PV一样、UV、VV、IP等Hash类型的数据也有用户访问轨迹等set类型的“动态数据”,而Redis丰富的数据结构很好地完成了这项任务。选择Redis的另一个原因是它足够简单,容易扩展。扩展Redis命令可以解决我们在实际应用中发现的所有问题。例如,TA中有一个应用程序场景:存储在Redis中的数据通常不是最终结果数据,而是需要进一步计算的中间数据,以消除ESA模块的状态。bouncerate这个指标(bouncerate=bouncesession数/totalsession数),需要前台查询两次,再做一次操作,最后显示给用户。在高并发的情况下,无疑会影响系统的响应速度。本着“移动计算而不是移动数据”的原则,我们对Redissort、hmget命令扩展,使其支持四个操作,并成功地将原来的两个查询优化为一个。扩展四个计算的另一个目的是“通过计算交换存储”。例如,需要将两种类型添加到组件总和的类型数据中,只能存储两种类型,并添加“通过计算交换”的总数据。除数据读取外,数据写入还可以优化类似的合并数据。例如,TA在写入URL的PV中、UV、VV、IP、当停留时间和bouncerate这六个指标时,需要调用6个Redis命令。事实上,这六个指标存储在同一个Hash中。通过扩展hmincrby命令,支持一次更改Hash的所有field,可以将调用次数优化到一次。上线后也取得了不错的效果,CPU在峰值时的利用率几乎下降了一半,同时上层模块ESA的吞吐量也大大提高。LevelDB是Redis的有效补充。考虑到Redis是一个内存数据库,使用内存的成本高于硬盘,因此选择引入基于磁盘存储的LevelDB作为补充。我们选择LevelDB存储“固定数据”,因为LevelDB的写作性能足够好,阅读性能远远超过了目前“在线少量阅读”的需求。在数据存储的架构设计中,由于实时数据服务和在线系统的可靠性要求较高,我们主要采用双写复制 Sharding的设计方法。双写复制。为了提高在线系统服务的可用性,所有数据存储将至少同步写两份。数据分片(Sharding)。基于域名:所有数据以域名为单位组织分片;任何域名都可以调整到任何分片;原则上,单个域名数据存储在一个分片中。动态调整(如图所示):只调整分片策略,不移动数据;根据数据量计算分片负载。另外,对于分片集群数据的查询,我们主要做了三项工作(如图所示)。Redisprotocolstack是一个相对完整的Redis协议栈,是上层应用的基础。直接使用Redis协议作为外部查询的通用协议,使外部用户可以通过当前的RedisClient直接查询访问数据。QueryRulengine是一个灵活的查询引擎。能够根据规则智能地在多个Redis中工作、查询LevelDB数据源,执行类join操作;还简单扩展其他异构数据源,如MySQL、HBase等。QueryComputeengine是一种实时查询计算引擎,可根据基本查询结果实时计算。本部分的主要目的是减少Redis数据空间的占用。展望未来,虽然TA已经在后台更新了数据秒,但显示模式仍然是传统的静态模式。后续TA会尝试更多的数据动态刷新,让站长第一时间了解网站的营销效果,时刻感受网站的心跳。
推荐阅读
- 餐饮品牌商标必争之地 [第43类]:注册要尽早、尽快、尽全
短视频的崛起,加速了网红餐饮店的更迭。近几年,红极一时又销声匿迹的网红餐厅和网红饮品店数量并不在少数,能够在洪浪冲击中留下来的品牌餐饮店还要面对山寨店和第43类商标注册的争夺战,皇茶、瑞幸、鹿角巷、喜茶等知名品牌都不可幸免。图片来源于网络餐…查看详情
- tmp是什么文件
共享文件出现tmp是什么问题?tmp是临时文件的意思,这是共享文件程序运算处理时临时保存的文件,并不是保存后得到的文件,一般这样的文件是无法使用的,不过有的软件功能强大,对此可以处理。 正常来说这样的文件就不会被保存下来,软件在保存后会自…查看详情
- 收费不清楚?版权登记费用一览表来帮你
作品版权及著作登记,申请价格依照不同的著作权登记而不同,并且在不同的省份版登权记价格也会有不同,一般而言,可以进行作品登记的类目可以概括为以下几大方面,收费可参照版权登记费用一览表。图片来源于网络1:文字、口述作品2:音乐作品3:戏剧作品4…查看详情
- windows10的控制面板在哪里找
Windows10是一款广受欢迎的操作系统,它有许多常用的功能和工具,其中一个重要的功能是控制面板。在Windows 10中,控制面板是一个集成了许多设置和工具的窗口,可用于管理和自定义计算机的各个方面。那么,在Windows 10…查看详情
- 手机fastboot什么意思
手机fastboot模式是什么意思?手机中fastboot模式是指一种比recovery更底层的刷机模式(俗称引导模式)。进入该模式后,使用USB数据线连接将电脑和手机相连接,利用电脑进行刷机操作。相对于某些系统(如ios)卡刷来说,线刷更…查看详情
- 半个*圈的名人都在天猫开设旗舰店
天猫双十一的影响力之大,不得不佩服,让半个*圈的人都在天猫开设了旗舰店。吴亦凡、五月天阿信等200个顶级流量明星都在天猫开设了专属旗舰店,阿信同款卫衣、谢霆锋锋味腊肠等等,为了在双十一也分得一杯羹,各大明星纷纷在天猫旗舰店大显身手,满足自己…查看详情
- 企业担忧 | 小程序开发外包怎么样?
小程序开发外包是一个趋势,随着小程序的开发越来越深入,将会有越来越多的企业将小程序开发外包给专门的公司来进行制作。因为对于没有开发能力的企业来说,小程序开发外包是一件省时省力的事情,不仅能减少自己的时间消耗,还能缩短小程序开发周期,同时还可…查看详情
- 格力举报奥克斯,真是出于正义?
谁都知道,这无关乎正义加持,明显的隔空对抗。 6月10日下午,格力电器在官方微博公开举报奥克斯空调,称其空调产品能效比和制冷消耗功率的检测结论均为不合格。随后,奥克斯方面发布公开声明,对于格力的不实举报,已经向公安机关报案。 10日晚间9点…查看详情
- 专利权产生的消极条件是什么?
在平时很多的小伙伴都不知道专利权产生的消极条件的基本情况,而且对专利权产生的消极条件都不是很熟悉,下面万商云集小编就为大家整理了专利权产生的消极条件这方面的相关内容,希望下面的内容能帮助到各位。 一、专利权产生的消极条件是什么…查看详情
- 查看晋江文学城小说排行榜,选择自己喜欢的小说
要说看小说,那必然会离不开晋江文学城。如果第一次接触晋江小说软件的话,建议查看以下的晋江文学城小说排行榜,这样才会有更大的几率选择自己更为喜欢的小说。具体看以下的推荐。 1、天官赐福 天官赐福这本书讲述的作为一个太子殿下的…查看详情
- 有什么app可以自己设计制作软件
做程序必须要精通这方面的知识,因为做程序是特别费脑子的,而且不是这个专业的人员根本看不懂对应的知识,所以,如果你学的是这个专业,可以看一下怎么制作软件程序都有什么,用对应的基础知识与软件去制作程序就可以。 1、软件app程序…查看详情
- 手机互传软件有哪些 手机互传软件排行榜
在电脑上传文件大家是经常使用的,但是很多的小伙伴都想在手机上互传文件,下面*就给大家来详细介绍一下手机互传软件有哪些 手机互传软件排行榜这一块的内容,希望能帮助到大家! 手机互传软件排行榜 1、《快牙》 这是一款可以进行快速传…查看详情
- 二手交易平台有哪些 靠谱的二手交易平台
对于这些闲置物品的处理,一部分我把它们清理掉了,而另一部分我把它们放在了二手平台上变卖了,下面万商云集*就给大家来看一下二手交易平台有哪些 靠谱的二手交易平台有哪些,不知道下面的二手交易平台大家使用过没有。 平台一:闲鱼 闲鱼这…查看详情
- 网站运营分析 | 帮助我们找到问题,确定优化方向
网站在运营过程中会涉及多项数据,而一个专业的运营人员就是通过这些数据,对网站运营分析相关问题,结合数据找到优化方向,确定解决方案。 图片来源于网络 网站运营分析,要先找到正确的优化方向,要对以下数据进行着重分析。◤ 1. 网站流量来源一个…查看详情
- 【杭州代运营公司排名】“互联网之乡”的友情推荐,仅供参考!
杭州有“互联网之乡”的称呼,主要是因为杭州是信息经济的先发城市,在电子商务产业领域具有明显的带动力。杭州当地有阿里巴巴、网易、百度等互联网名企,在智能、金融、农业和物流等相关“互联网+”行业发展相当迅速,也因此存在20%的互联网大企业占有8…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
邮箱:zjb@iwanshang.com
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的AI增效平台

400-0033-166
8:30-18:00















































注册有好礼



