写点什么

揭秘字节跳动内部流量调度与容灾实践【上】

  • 2025-01-22
    北京
  • 本文字数:3425 字

    阅读完需:约 11 分钟

大小:1.81M时长:10:32
揭秘字节跳动内部流量调度与容灾实践【上】

摘要:在字节跳动,平衡超大规模流量的稳定性、性能与成本,是一系列产品共同面临的挑战,其中, Trafficroute GTM 起到了不可忽视的作用。Trafficroute GTM 承载了字节跳动亿级流量、覆盖了大规模场景,是一款基于 DNS 的流量路由服务,我们将通过两期文章,揭秘字节跳动如何通过 Trafficroute GTM 巧妙应对以上挑战,实现高效流量管理!


本文为上期,主要介绍基于 TrafficRoute GTM 的 GEO-基础路由模式进行自定义流量编排,主要内容为:

  • TrafficRoute GTM 介绍

  • TrafficRoute GTM 的 GEO-基础路由模式的能力

  • 通过流量编排实现同城多活、多 CDN 调度、CDN 回源调度等经典架构及业务在稳定性、性能、成本等方面的收益


下期预告:下期我们将介绍 TrafficRoute GTM 的 Perf-智能路由模式,怎么通过它实现流量智能调度,敬请期待。


面临超大规模流量时,平衡好稳定性、性能、成本,能确保用户在访问服务时获得流畅、快速且可靠的体验,这对于提高用户满意度和粘性至关重要。TrafficRoute GTM 为业务提供基于 DNS 的全球流量负载均衡、智能调度、自动容灾服务,可以帮助业务提升连续性、实现资源优化、获取更多竞争优势。


1.火山引擎 Trafficroute GTM 简介


火山引擎 Trafficroute GTM 是基于 DNS 的流量路由服务。它依托全球 1100+分布式探测节点,构建出强大的网络质量感知能力,实现了对“端-边-云”全链路流量的质量感知,从而能根据 APP 应用的实时的访问质量、节点负载和健康状况作出动态的流量调度。


此外,Trafficroute GTM 还提供灵活的调度策略,其中 GEO-基础路由功能丰富,包括负载均衡、会话粘性和故障转移等多种特性。而 Perf-智能路由则在基础路由的基础上,进一步提供性能优先和负载反馈等智能调度能力,以满足更高层次的调度需求。


一图看懂 TrafficRoute GTM


在字节跳动内部业务中,通过对 Trafficroute GTM 能力的合理运用,落地了同城多活、多云混合等经典架构,也落地了边缘下沉,边缘计算 x 中心云等大规模分布式场景的最佳实践。


2.GEO-基础路由,实现流量自定义编排


TrafficRoute GTM 的 GEO-基础路由赋予用户灵活的流量管理能力,用户可根据具体业务需求,如负载均衡、就近接入、多活/灾备等,自定义路由调度策略,通过资源(地址池)编排、健康检查编排、路由(调度)规则编排等能力,打造个性化的流量调度与容灾解决方案。



2.1 地址资源编排:地址按需分类


资源是指流量访问的终点,包括公有云的 EIP 、CDN 的 CNAME 或边缘接入点等。TrafficRoute GTM 支持用户按照业务场景对资源(地址)进行自定义分类、组合和编排,编排形成的地址池可被路由规则引用,进而打造个性化的流量调度与容灾解决方案。



2.2 健康检查编排:全链路监测能力


健康检查是实现自动容灾的必要条件,TrafficRoute GTM 具备覆盖全球范围的 L3/L4/L7 健康检查功能,用户可以配置不同灵敏度的全链路监测能力,以此为自动容灾提供精准的决策支持,最终实现最快分钟级自动容灾。



2.3 路由规则编排:流量调度和容灾


通过精心配置 TrafficRoute GTM 的路由(调度)规则,可以精确控制流量的来源与去向,同时在发生故障时,确保流量能够按照预设的容灾方案进行故障转移。



3.字节跳动流量编排内部实践


在字节跳动内部业务中,通过 TrafficRoute GTM 的自定义流量编排实现了同城多活、异地灾备、全球多 CDN 调度、CDN 回源调度等经典架构,帮助内部业务:

  • 在稳定性上,将 MTTR 降低至分钟级,实现最快 1 分钟故障发现,3-5 分钟 90%+流量收敛(由于流量收敛时长受客户端分布、localDNS 行为、是否使用长连接等多种因素影响,3-5 分钟 90%+为参考值)

  • 在性能上,通过编排,将客户流量调度至各自访问体验最佳节点上,实现访问时延降低 15%+

  • 在成本上,通过编排,将流量优先调度至单位成本更低的资源上,实现带宽成本降低 10%+



3.1 同城多活,异地灾备,确保业务稳定与连续


在字节跳动业务中,同城多活与异地灾备架构是确保超大规模业务全天候稳定运行的核心策略之一。借助 GTM 的 GEO-基础路由模式,我们成功构建了 AZ 间流量负载均衡、 Region 间异地灾备、客户端 GEO&ISP 就近访问、分钟级自动容灾 4 大能力,以这 4 大能力为保障,实现了流量负载均衡、客户端就近接入、分钟级自动容灾等,确保了业务的稳定性和连续性。


同城多活 & 异地灾备


AZ 间流量负载均衡

通过编排路由规则的地址池权重,使得华北移动的客户端按照 60% vs 40%比例在 RegionA 的 AZ 之间实现了负载均衡。



同时,通过打开*会话粘性开关(TOB 版本待发布),使得特定的华北移动客户端始终访问同一个 EIP,实现会话保持功能。



Region 间异地灾备

通过编排路由规则的生效地址池集合 vs 其他地址池集合,实现了当 Region A 整体故障,流量切到 Region B,实现异地容灾能力。




客户端 GEO&ISP 就近访问

通过编排路由规则的线路 & 生效地址池集合,实现了根据客户端地理位置运营商来就近访问服务的能力,从而确保时延最低、性能最优、体验最佳。



分钟级自动容灾

通过编排健康检查规则,实现了最快 1 分钟故障感知 &容灾切换,3-5 分钟 90%+流量收敛的能力;且可感知全链路的故障,覆盖客户端->运营商网络->机房入口->后端服务。




以下是字节跳动内部自动容灾实践案例,某个面向企业级客户的边缘云与中心云混合部署业务,在凌晨 3 点 47 分遭遇了某机房故障,GTM 在 3 点 48 分迅速检测到这一故障,并自动启动了容灾机制。到了 4 点左右,中心机房已成功收敛了 90%的流量。随后,在 4 点 02 分,GTM 系统监测到故障已恢复,随即自动将流量回切至边缘机房。



更多关于 GTM【同城多活】【异地灾备】【两地三中心】等技术架构可参考往期分享:《火山引擎云调度GTM“同城容灾”与“异地多活”实践》


3.2 全球多 CDN 调度,始终选用“最优” 加速厂商


字节跳动的业务,会在全球应用包括火山引擎 CDN 在内的多家 CDN 厂商,来实现资源加速。然而,不同 CDN 厂商的服务能力存在差异,即便是同一厂商,在不同地区或不同时间段的表现也有所不同。因此,确保在全球各个地区始终选用“最优” CDN 厂商,成为了一项重要需求。


借助 TrafficRoute GTM 的流量编排,业务方能够根据不同区域的需求,灵活选择“资源覆盖更广”或“加速性能更好”的 CDN 厂商进行内容加速,同时可在多个厂商之间权衡成本效益(基于 P95 带宽计费)。同时, TrafficRoute GTM 确保了不同区域的流量能够“就近接入”选定的 CDN 厂商,以保障接入性能。在国内,针对不同运营商采用了定制化的路由策略,避免了 ISP 间的“跨网”问题,确保网络流畅。


为了应对流量管理中的潜在故障,每个流量部分都配置了多个地址池(即多个厂商),以实现故障时的自动流量切换。在故障探测方面, TrafficRoute GTM 采用了智能推荐的分布式综合探测方法,确保探测点与流量来源处于同一区域,减少误判风险,并具备分钟级的故障感知和流量迁移能力。


此外,故障转移(Failover)算法遵循“快速迁移,慢速恢复”的原则,结合历史流量质量监测和防抖动算法,以优化策略执行,确保服务的连续性和稳定性。



3.3 CDN 回源调度,保障源站可用性


字节跳动内部业务中,每时每刻都有超大规模的视频、图文、API 等流量经过 CDN/DSA 加速回到源站,因此源站的可用性至关重要。


为确保源站的可用性,我们通过 GTM 将源站接入点(一般是若干 EIP)封装成回源域名,回源域名被加载到 CDN 厂商的回源配置当中。由于回源域名由 GTM 托管,因此其具备了流量负载均衡、全链路健康检查、分钟级自动容灾等能力,保证了 CDN 厂商至源站这一回源链路的高可用性。这一容灾策略与 CDN 厂商回源机制本身包含的容灾策略相融合,可构建更加健壮的回源链路,进一步确保链路的高可用性。



在确保源站的可用性的过程中,通过 GTM 实现了两大能力,一是源站负载均衡,二是源站自动容灾。通过在 GTM 回源域名上配置源站的权重,可以实现将 CDN 回源流量在不同站点之间进行分配,保障了源站负载均衡;GTM 通过周期性 http 健康检查,实时感知源站运行状态,无论是部分节点异常还是源站整体故障,GTM 都能在 1 分钟内感知并完成容灾切换,实现了源站自动容灾。


以下是字节跳动内部 CDN 回源切流实践案例,通过 GTM 在 14 点 08 分将源站的 telecom 线路权重调整为 0,14 点 12 分左右源站 telecom 线路流量切空,14 点 42 分左右通过 GTM 复原源站的 telecom 线路权重,14 点 45 分左右源站 telecom 线路实现流量 100%收敛。



具体配置 GTM 落地 CDN 回源调度的流程,可点击文末【阅读原文】,跳转《通过 GTM 在 CDN 中实现自定义的负载均衡、健康检查和容灾切换》一文。


END


通过搭建同城多活、异地灾备;全球 CDN 调度;CDN 回源调度等经典架构,Trafficroute GTM 帮助字节跳动内部业务经受了超大规模流量考验,确保始终为用户提供稳定的服务。

2025-01-22 16:117769

评论 1 条评论

发布
用户头像
数据库也做了跨region的高可用吗?在跨region容灾切换的场景下,是如何保证数据库的数据实时同步的?RTO和RPO是多少?
2025-03-02 18:32 · 广东
回复
没有更多了

网易云信携手“瑶台”,打造元宇宙商业化实践标杆案例

网易云信

人工智能 虚拟化 虚拟人 元宇宙

自定义View:如何实现手动拖动的图片控件

Changing Lin

11月日更

今天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板

Java 程序员 JVM springboot MyBatis标签

网易云音乐网络库跨平台化实践

网易云信

数据库 网络库 跨平台化

CSS页面设计稿构思与实现(四)之自定义字体

Augus

CSS 11月日更

送给正在入行的小白:最全最有用的网络安全学习路线已经安排上了

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

大数据实践:数据指标中心的建设思路

大数据技术指南

11月日更

数字化学习分享+一场思维探索工作坊+引导回顾会+公开演讲

研发管理Jojo

数字化转型 敏捷教练 咨询

2021年10月券商App行情刷新及交易体验评测报告,兴业证券荣登榜首!

博睿数据

区块链符号理论:符号方案和符号系统

CECBC

云开发CloudBase集成腾讯数字身份管控平台CIAM,快速实现账号管理

腾讯安全

Python代码阅读(第57篇):倒序字符串

Felix

Python 编程 string 阅读代码 Python初学者

通用排序框架在爱奇艺推荐的应用

爱奇艺技术产品团队

元宇宙让我们实现“办公自由”?想要远程办公,保证员工效率和有效管理才是关键!

极狐GitLab

全捐了,华为将欧拉开源操作系统代码、品牌等相关资产捐赠!!!

BeeWorks

从开始到放弃:某高校电子校友卡开发笔记

CC同学

博睿数据APM适配欧拉开源操作系统,为开发者性能体验保驾护航

博睿数据

【得物技术】得物直播秒开体验提升

得物技术

体验 直播 视频 优化 卡顿

投资元宇宙,如何开启混合现实开发

龙智—DevSecOps解决方案

游戏开发 元宇宙 混合现实

终于有人把“元宇宙”说清楚了

CECBC

爱奇艺基于SpringCloud的韧性能力建设

爱奇艺技术产品团队

WorkPlus移动门户开启数字化智慧办公新模式

BeeWorks

WeTest与腾讯安全联合推出小程序质量方案,助力私域流量2.0新增长

WeTest

【福利】腾讯WeTest专有云,限时开放招募体验官

WeTest

Gartner:对中国央行数字货币的创新见解

BeeWorks

质量基础设施一站式云服务平台搭建,NQI一站式服务平台

电微13828808271

百度APP移动研发平台及DevOps实践

百度开发者中心

DevOps 最佳实践 方法论 移动端 百度app

阿里内网疯狂传阅的“M8级”分布式架构笔记,GitHub刚上线就霸榜

Java 编程 程序员 架构 阿里

ZGC在合合信息HBase平台中的实践

合合信息大数据团队

大数据 性能优化 ZGC HBase 合合信息

不愧是GitHub上标星120K的Java手册,全程干货,只讲重点

收到请回复

Java 程序员 后端 面试技巧

模块三作业

panxiaochun

架构实战营

揭秘字节跳动内部流量调度与容灾实践【上】_字节跳动_火山引擎_InfoQ精选文章