首页 » 网站推广 » php头条号技巧_今日头条架构师头条12亿日活的微做事和高可用架构实践

php头条号技巧_今日头条架构师头条12亿日活的微做事和高可用架构实践

访客 2024-12-04 0

扫一扫用手机浏览

文章目录 [+]

业务高速发展下的架构演进

今日头条作为国民级资讯阅读App,2019年用户规模超6.5亿人,日活1.2亿+,视频播放量占头条整体65%+,头条号文章发布量超1.6亿,视频发布量超1.5亿。

php头条号技巧_今日头条架构师头条12亿日活的微做事和高可用架构实践

今日头条系统,在稳定性可用性方面压力比较大,一方面须要快速把业务实现,但在其余一方面,类似这些高可用的问题会常常骚扰工程师:上线就挂、运营活动量大做事崩溃、单机性能顶不住、一个小做事上线把核心做事搞挂了……类似这些问题,技能团队须要如何更好的去应对?

php头条号技巧_今日头条架构师头条12亿日活的微做事和高可用架构实践
(图片来自网络侵删)

架构演进,在不同阶段的公司都会面临各种压力。
小公司压力可能是业务没起来,QPS 很低,要做优化也没有环境及条件。
当公司大了,做事器可能已经不是问题,但你要不断考虑调优及应对访问压力,改进根本举动步伐以供应更稳定的开拓环境。
以是说架构演进是持续一个过程,没有终点。

02

今日头条架组成长的三个阶段

第一阶段:传统的三层架构、单体架构

今日头条刚开始做的时候,便是一个大略 Web 运用,搭个数据库,把业务实现就行了。
头条最开始的上风是推举引擎,还有其余一套数据挖掘和离线打算。
在线的做事在前审察对来讲模式还是比较清晰的,三层就搞定了。
业务刚开始起来的时候,没什么问题,访问增大水平扩展一下就可以办理。

第二阶段:系统拆分、打散

跟大多数的架构演进历史非常类似,系统碰着性能瓶颈后,最大略就做一些拆分。
优化的过程中,便是把压力较大的子系统就从代码上进行拆分,分成多个可独立支配、无状态化的做事。

这个阶段可以把SSO、用户中央、文章中央、视频、评论等拆分出来,每个业务中央都可以集群支配,达到加机器就可以办理性能问题的效果。

随着业务的快速发展,代码和架构上的包袱是比较沉重,改造的本钱比较高。
基于这些问题,就要开始演进到下一个阶段,微做事。

第三阶段,微做事,中台化架构

通过拆分成子系统,大的运用拆成小运用,抽象通用层做代码复用。
重点在根本举动步伐,希望通过根本举动步伐提高快速迭代、容灾和一系列的事情,希望各个业务团队能更快做业务上的迭代以及架构上的调度。

(微做事架构)

(微做事架构)

微做事最关键的三点:

1、解耦,一个做事会依赖其余一个做事、模块或子做事的观点。

2、轻量,减轻掩护职员的本钱。

3、易管理。

03

头条的做事化架构培植思路

立规范。
包括支配RPC规范、做事调用规范、做事管理原则、超时重试机制等等,否则规模大了之后就会是个灾害。

打根本。
有了规范往后,开始真正落地的做事。
比如说根本库,把Ngnix、Redis、MySQL这些库封装起来,统一起来做一些开拓框架,做业务系统开拓的时候,就不用关注数据层的细节,专心实现业务逻辑。

渐进。
先拆离再迭代,逐步把做事优化起来。

统统都是做事。
第四点是和其他公司或团队稍不一样的地方,我们的想法是统统都是做事,每个节点都是抽象归属于某一个详细的做事。
存储的确是一个做事,但它不但是供应 API 或者供应功能的东西,还须要包括做事质量,须要别人用起来是比较大略的。

平台化。
末了的落地是平台化的东西。
我们框架是怎么设计,和做事怎么结合?

统统都是做事:

资源是有限的:按需申请,需申请和授权;

大略的利用办法:开拓者只须要关注业务;

有唯一定位的办法:用全局资源定位;

核心规范:

必须要有全局的中央,做事统一注册到 consul 中;

做事有唯一的标示、命名范:{产品线}.{子系统}.{模块} P.S.M,公司有很多部门,我们不肯望部门之间沟通起来有差异,以是须要有全局方案去追溯它;

业务做事利用 Thrift 描述接口、必须通报标准参数。
如果用弱的描述数据,没有强约束,在客户真个数据可能会涌现类型缺点;

RPC 利用统一收敛的库;

Nginx、Redis、MC、MySQL、etc 都是做事

做事注册:我们做事统一利用 loader 或 wrapper 脚本启动,详细启动由业务决定。
做事启动会有一个全局唯一ID,把 app 注册到做事里面。

做事中央

做事中央有做事信息,会同时带上是什么样的做事,其他人比较大略的调这个做事就 OK 了。
这个做事到底供应什么样的做事质量,拥有者可以管理这个信息。
Redis去做事,负载均衡,做事一个项目,把做事接上去。

做事关系与授权

做事之间有个关键的观点:做事授权。
一样平常我们起一个做事,通过 IP 就可以连上它了。
数据库有用户名认证,也可以对 IP 授权。
不过内网很多做事限定比较少,不是所有做事都有授权认证。
我们希望把做事之间的关联关系,全局拓扑关系记录下来并且可实行。

04

头条做事拓扑架构图

做事依赖和被依赖的全局关系拓扑图,做事变更影响范围评估,做事管理,监控预警根本,须要常常更新掩护。

05

头条RPC开拓框架设计思路

培植关键点:

1、快速开拓,代码天生

2、做事创造,做事的自动创造、做事注册

3、可不雅观测,logid、pprof、admin端口

4、容灾降级,业务降级开关

5、过载保护,熔断器、调用掌握

6、多开拓措辞异构系统

06

基于容器的云原生微做事

基于容器技能的云原生微做事,将敏捷开拓、devops完美领悟,做事化理念的落地与业务场景结合, 实现端到真个代价交付。

以上先容了今日头条架构高可用、微做事、容器化等实践

作者:作者,夏绪宏。
今日头条架构师,专注对高性能大规模 Web 架构,云打算、性能优化、编程措辞理论等方向,PHP committer,HHVM 项目贡献者。
2015 年加入今日头条卖力根本举动步伐,系统架构设计和优化,办理大流量高并发下的系统性能、可靠性和运维效率等方面的问题。

标签:

相关文章

探秘北京丰台区历史与现代交织的文化胜地

丰台区,位于北京市南部,东邻朝阳区,西靠门头沟区,南与河北省交界,北与石景山区相邻。作为北京市重要的历史文化名城之一,丰台区不仅承...

网站推广 2025-02-18 阅读0 评论0

富士伺服器报警代码OF故障原因及应对步骤

伺服电机在工业生产中的应用越来越广泛。富士伺服器作为伺服电机的重要组成部分,其性能直接影响着整个系统的稳定性。在实际应用过程中,富...

网站推广 2025-02-18 阅读0 评论0

安卓手机电池技术发展之路电池续航的奥秘

智能手机已经成为我们生活中不可或缺的一部分。手机续航问题一直困扰着广大用户。作为安卓手机的核心部件,电池技术的发展显得尤为重要。本...

网站推广 2025-02-18 阅读0 评论0