今日头条技术架构千字分析,
点击“开发者技术前线”,选择“星标????”
让一部分开发者看到未来
今日头条创立于2012年3月,到目前仅4年时间。从十几个工程师开始研发,到上百人,再到200余人。产品线由内涵段子,到今日头条,今日特卖,今日电影等产品线。
一、产品背景
今日头条是为用户提供个性化资讯客户端。下面就和大家分享一下当前今日头条的数据(据内部与公开数据综合):
5亿注册用户
2014年5月1.5亿,2015年5月3亿,2016年5月份为5亿。几乎为成倍增长。
日活4800万用户
2014年为1000万日活,2015年为3000万日活。
日均5亿PV
5亿文章浏览,视频为1亿。页面请求量超过30亿次。
用户停留时长超过65分钟以上
1、文章抓取与分析
我们日常产生原创新闻在1万篇左右,包括各大新闻网站和地方站,另外还有一些小说,博客等文章。这些对于工程师来讲,写个Crawler并非困难的事。
接下来,今日头条会用人工方式对敏感文章进行审核过滤。此外,今日头条头条号目前也有为数不少的原创文章加入到了内容遴选队列中。
接下来我们会对文章进行文本分析,比如分类,标签、主题抽取,按文章或新闻所在地区,热度,权重等计算。
2、用户建模
当用户开始使用今日头条后,对用户动作的日志进行实时分析。使用的工具如下:
Scribe
Flume
Kafka
我们对用户的兴趣进行挖掘,会对用户的每个动作进行学习。主要使用:
Hadoop
Storm
产生的用户模型数据和大部分架构一样,保存在MySQL/MongoDB(读写分离)以及Memcache/Redis中。
随着用户量的不断扩展大,用户模型处理的机器集群数量较大。2015年前为7000台左右。其中,用户推荐模型包括以下维度:
1 用户订阅
2 标签
3 部分文章打散推送
此时,需要每时每刻做推荐。
3、新用户的“冷启动”
今日头条会通过用户使用的手机,操作系统,版本等“识别”。另外,比如用户通过社交帐号登录,如新浪微博,头条会对其好友,粉丝,微博内容及转发、评论等维度进行对用户做初步“画像”。
分析用户的主要参数如下:
关注、粉丝关系
关系
用户标签
除了手机硬件,今日头条还会对用户安装的APP进行分析。例如机型和APP结合分析,用小米,用三星的和用苹果的不同,另外还有用户浏览器的书签。头条会实时捕捉用户对APP频道的动作。另外还包括用户订阅的频道,比如电影,段子,商品等。
4、推荐系统
推荐系统,也称推荐引擎。它是今日头条技术架构的核心部分。包括自动推荐与半自动推荐系统两种类型:
1) 自动推荐系统
自动候选
自动匹配用户,如用户地址定位,抽取用户信息
自动生成推送任务
这时需要高效率,大并发的推送系统,上亿的用户都要收到。
2)半自动推荐系统
自动选择候选文章
根据用户站内外动作
头条的频道,在技术侧划分的包括分类频道、兴趣标签频道、关键词频道、文本分析等,这些都分成相对独立的开发团队。目前已经有300+个分类器,仍在不断增加新的用户模型,原来的用户模型不用撤消,仍然发挥作用。
在还没有推出头条号时,内容主要是抓取其它平台的文章,然后去重,一年几百万级,并不太大。主要是用户动作日志收集,兴趣收集,用户模型收集。
资讯App的技术指标,比如屏幕滑动,用户是不是对一篇都看完,停留时间等都需要我们特别关注
5、数据存储
今日头条使用MySQL或Mongo持久化存储+Memched(Redis),分了很多库(一个大内存库),亦尝试使用了SSD的产品。
今日头条的图片存储,直接放在数据库中,分布式保存文件,读取的时候采用CDN。
6、消息推送
消息推送,对于用户: 及时获取信息。对运营来讲,能够 提⾼⽤用户活跃度。比如在今日头条推送后能够提升20%左右的DAU,如果没有推送,会影响10%左右 DAU(2015年数据)。
推送后要关注的ROI:点击率,点击量。能够监测到App卸载和推送禁用数量。
今日头条推送的主要内容包括突发与热点咨讯,有人评论回复,站外好友注册加入。
在头条,推送也是个性化:
频率个性化
内容个性化
地域
兴趣
比如:
按照城市:辽宁朝阳发生的某个新闻事件,发给朝阳本地的用户。
按照兴趣:比如京东收购一号店,发给互联网兴趣的用户。
推送平台的工具和选择,需要具备如下的标准:
通道,首先速度要快,但是要可控,可靠,并且节省资源
推送的速度要快,有不同维度的策略支持,可跟踪,开发接口要友好
推送运营的后台,反馈也要快,包括时效性,热度,工具操作方便
对于运营侧,清晰是否确定推荐,包括推送的文案处理
因此,推送后台应该提供日报,完整的数据后台,提供A/B Test方案支持。
推送系统一部分使用自有IDC,在发送量特别大,消耗带宽较严重。可以使用类似阿里云的服务,可有效节省成本。
二、今日头条系统架构
三、头条微服务架构
今日头条通过拆分子系统,大的应用拆成小应用,抽象通用层做代码复用。
系统的分层比较典型。重点在基础设施,希望通过基础设施提高快速迭代、容灾和一系列的工作,希望各个业务团队能更快做业务上的迭代以及架构上的调整。
四、今日头条的虚拟化PaaS平台规划
通过三层实现,通过 PaaS 平台统一管理。提供通用 SaaS 服务,同时提供通用的 App 执行引擎。最底层是 IaaS 层。
IaaS 管理所有的机器,把公有云整合起来,头条有一些热点事件会全国推广推送,对网络带宽比较高,我们借助公有云,需要哪一种类型计算资源,统一抽象起来。基础设施结合服务化的思路,比如日志,监控等等功能,业务不需要关注细节就可以享受到基础设施提供的能力。
五、总结
今日头条重要的部分在于:
数据生成与采集
数据传输。Kafka做消息总线连接在线和离线系统。
数据入库。数据仓库、ETL(抽取转换加载)
数据计算。数据仓库中的数据表如何能被高效的查询很关键,因为这会直接关系到数据分析的效率。常见的查询引擎可以归到三个模式中,Batch 类、MPP 类、Cube 类,头条在 3 种模式上都有所应用。
链接:
https://blog.csdn.net/mucaoyx/article/details/84498468
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。
PS:后台回复 “666” 领取程序员大礼包哦~
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。
历史阅读
为什么蚂蚁金服的 ZSearch 比 ElasticSearh 还牛?
饿了么交易系统 5 年演化史
支付宝 App 架构的原理与实战
费解!为什么那么多人用“ji32k7au4a83”作密码?
http://www.taodudu.cc/news/show-5705535.html
相关文章:
- 《六周玩转云原生》- 云原生下的DevOps与持续交付
- 【记录我的作业2】工业机器人职业技能训练——week3RobotStudio纪念币和键盘工作台仿真。
- d3.js 旋转图形_“学习思路给你,看了就会”:小学数学知识点《组合图形的面积》...
- Win32 OpenGL编程系列 2D例子 -- 七巧板图形绘制
- 图像分割算法:基于KNN的像素级分割算法
- 乔梁老师的持续交付七巧板和三步法思维实践
- Android的七巧板Activity之二 Activity的加载模式
- Tangram + Virtualview图片处理
- 【总结】Halcon图像拼接
- canvas学习(一):七巧板
- 关于七巧板中某些需要提一嘴的技术实现
- J2ME 七巧板图库 七巧板查看器
- 使用Springboot获取微信公众号AccessToken
- iOS13实用小技巧第一期
- 除了Multi-Touch和3D变换效果外,手机中另一重量级:力反馈。
- 喜欢玩游戏的发烧友不要错过了,五款高续航低延迟蓝牙耳机为你量身打造
- 平价的无线蓝牙耳机推荐,五大续航持久无线耳机
- 手机版_仿微信 陌陌 安卓版(android)/苹果版(iPhone ios),移动社交APP系统源码,企业即时通讯APP程序源码,手机聊天软件源码,移动聊天APP开发...
- 华为持续突破,事实证明谁也阻止不了它前进的脚步
- 2021五款高性价比游戏蓝牙耳机推荐,喜欢吃鸡王者的小姐姐不要错过哦~
- 以王者荣耀为例,教你将一天的时间用成28小时
- 网易极客战记计算机科学3攻略,【网易官方】极客战记(codecombat)攻略-地牢-循环又循环...
- 极客战记计算机科学2村庄守卫,「网易官方」极客战记(codecombat)攻略-森林-村庄守护者-village-guard...
- 我的世界暮色森林java下载_我的世界暮色森林mod下载-我的世界暮色森林1.12.2下载-Minecraft中文分享站...
- 【玩家心得】Smurf Society 游戏攻略
- 我的世界暮色森林java下载_我的世界暮色森林1.12下载_我的世界1.12暮色森林单机游戏下载...
- 程序员--看看你的反应有多快,有趣的脑筋急转弯(2)
- Android开发——图形编程(一)简单介绍与使用绘图类Paint、Canvas
- 《问道》手游职业选择攻略
- 问道手游服务器维护,问道手游3月14日服务器维护内容一览
今日头条技术架构千字分析,相关推荐
- 今日头条架构千字分析,这一篇就够了
点击"开发者技术前线",选择"星标????" 在看|星标|留言, 真爱 可可| 开发者前线 文末顺手加我微信 回复"666",获取一份专属 ...
- 今日头条技术架构分析,看这篇就对了!
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Anywhere, it is a good in the past, re ...
- 今日头条技术架构到底有多牛?
链接:https://blog.csdn.net/mucaoyx/article/details/84498468 今日头条创立于2012年3月,到目前仅4年时间.从十几个工程师开始研发,到上百人 ...
- 结合今日头条技术架构浅谈Java后台开发一些经验 - 立哥技术
- 剑气纵横三万里,一剑光寒九百州 前言:Java语言开发的后台系统(VUE架构),整合Swagger API,相较其他框架结构,有着语言简单,配置方便,轻量化,结构安全稳定的优点.今日头条在这3-5 ...
- 今日头条技术架构到底有多牛
????????关注后回复 "进群" ,拉你进程序员交流群???????? 专业拧螺丝-钟镇刚 链接: https://blog.csdn.net/mucaoyx/article/ ...
- python 微服务框架 知乎_今日头条Go建千亿级微服务的实践
原标题:今日头条Go建千亿级微服务的实践 原文作者:字节跳动技术团队 来源:知乎 小编有话说:如何寻找优质的学习资源是是否能够自学成功的前提要素,知乎作为一个流量比较大的问题和知识分享社区,在gola ...
- 今日头条的推荐算法原理分析(转)
链接:https://www.jianshu.com/p/b564c19567b7 今日头条发布了后台的算法原理,不过用词比较考究.说的比较深奥,让人感觉云里雾里不知何处,本篇尽量用通俗语言进行解析, ...
- 今日头条 Go 建千亿级微服务的实践
来源:https://zhuanlan.zhihu.com/p/26695984 今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上.微服务数量超过100个,高峰 QPS 超过700万,日 ...
- 云计算的技术架构与实现分析
引言 当前的"云计算"一词已经被神话,似乎快成了放之四海皆准的时髦真理,就好比当初言必称"希腊"一般,表面光芒四射,但实际上却无比教条.且越来越令人生厌. 作为 ...
最新文章
- 知识蒸馏(Knowledge Distillation)详细深入透彻理解重点
- 彻底卸载VS 2013
- JS中 map, filter, some, every, forEach, for in, for of 用法总结
- mysql数据库迁徙_Mysql数据迁徙方法工具解析
- 《南明史》txt版本
- 解决超星网课问题之不能查询后台观看数据和不能观看超时被锁的课程
- ORB SLAM2源码解读
- VSTOhowtoreferene.Net3.5(VSTO如何引用.NET3.5的外接程序)
- 邮件传输的过程都看不懂。那我走(狗头)
- 3.8编写程序 ,要求用户从键盘输入一个年份,程序输出改年出生的人的生肖。中国生肖基于12年一个周期,Java
- WEB、FTP服务器的搭建
- Kubuntu安装N卡驱动教程
- svn:svnserve 配置使用
- 计算机实验员技能大赛,“迎接挑战”计算机技能大赛圆满结束!
- 程序员成长系列--应该读的通用技术书籍列表
- 程序员你12点前睡觉了吗?
- 现在我的机子是卡巴+ewido+ZA的组合了!希望以此能远离病毒、木马等等威胁!
- ubuntu mint 开机启动项管理
- cocos2dx基础篇(7) 触碰事件
- Oruxmaps离线地图-最新制作教程(支持谷歌地图、卫星地图、地形图、百度地图、高德地图)
热门文章
- 株洲入选国家低碳试点城市 这些事与市民息息相关
- 2013 编程之美挑战赛 仙剑5前传之璇光殿
- oppo云服务器网站,OPPO云服务了解一下 给你满满的安全感
- JAVA-试题信息管理系统,初识JDBC
- python使用you-get批量下载网站视频
- Maven安装及配置,添加maven到IDEA中
- 魅族Android 5.1彩蛋,魅族Flyme 8新特性“彩蛋”:非常规渠道刷机会出现“全局水印”...
- 新手主播快速热场的2个技巧
- python代码大全心形盒子简单_Python: 有趣的心形打印代码
- php执行md5sum,Linux_详解Linux系统中md5sum命令的用法,MD5算法常常被用来验证网络文 - phpStudy...