上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

吉翔-B站多活架构解析、最佳实践与管控治理.pdf

编号:122079 PDF 25页 4.12MB 下载积分:VIP专享
下载报告请您先登录!

吉翔-B站多活架构解析、最佳实践与管控治理.pdf

1、B站多活架构解析最佳实践与管控治理吉吉 翔翔 bilibili bilibili 基础架构部基础架构部/资深资深SRESRE工程师工程师负责主站/直播/OGV/OTT等在线业务SRE相关工作负责B站S赛、跨年晚会、拜年纪等相关活动的基架保障工作 深度参与业务多活建设项目,负责业务多活推进、多活管控治理多活架构解析多活最佳实践多活管控治理多活架构解析多活架构解析异地多活同城多活单活/灾备多活通常指不同地理位置上的数据中心,部署应用服务和数据,基于流量调度管控能够同时提供服务应用应用应用数据(主)应用应用应用数据(从)数据A数据B.数据A数据B.数据A数据B.多数据中心同城多数据中心异地多数据中心

2、5ms30ms5ms应用数据(主)数据(备)同城跨城同城多活(同城双/三中心):业务部署在同一个城市不同数据中心,可划分为两个/多个可用区,由数据中心间专线支持提供5ms网络延迟。数据层具备同步和切换能力。主要优势:主要优势:架构方案比较简单,业务改造接入成本低;数据中心距离近,数据同步延迟低,易保证数据最终一致性;劣势:劣势:无法抵抗城市级别故障/灾难,但极端灾难发生概率比较低;挑战:挑战:流量调度管控、数据接入层能力支持复杂业务场景下链路会出现频繁跨机房调用增加响应时间,影响业务耗时和用户体验。同城多活50%50%ServiceService存储(主)存储(从)单向同步写读/写读流量调度3

3、0ms。需要按用户分片划分流量,数据层具备单元分片能力,数据进行双向同步;通常也称为单元化架构。主要优势:主要优势:可以抵抗城市或区域级别的灾难影响;易于扩展,可以解决单城市/机房容量上限问题;业务调用单元内封闭,少量跨机房调用,保障耗时和用户体验挑战:挑战:数据分片存储、双向同步能力支持架构复杂度高,并非所有业务都适合,强一致业务仍旧依赖全局部署/数据存储,非强一致业务适合做单元化改造数据分片B数据分片B双向同步数据分片A30ms流量调度流量接入层流量接入层数据访问层数据访问层多活管控多活管控缓存层缓存层DCDNSLBAPIGWServiceMQCacheGZ DB/KVJobSLBAPIG

4、WServiceCacheMQJobProxyGZ DB/KVProxyCanalCanal支持双向同步、三种消费模式单向同步服务发现读/写读读/写GZSInvoker删除/更新删除/更新读读回源回源上海可用区1上海可用区2消息层消息层BinlogBinlog数据存储层数据存储层DCDN南北向流量管控用户纬度Hash路由SLB&GW南北向流量管控故障降级重试Discovery东西向流量管控缓存一致性维护纯缓存场景改造Topic Sync消息双向同步Global/Local/None消费模式Proxy读写路由、容灾切换支持MySQL/TiDB/KV主从单向同步、双向同步高可用容灾切换多活资源可视

5、化多活定义、编排切流预检可观测DCDNDCDN 基于边缘CDN做路由管控,动态最佳选路 自研Picker Hash模块,用户ID、设备ID等信息路由 支持多机房流量权重灵活调整SLB 当单可用区SLB故障,支持CDN从其他可用可用区回源 支持发现多可用区服务/APIGW节点 支持API降级、限流APIGW 发现多可用区服务节点,单可用区服务故障重试 支持服务API降级、熔断、限流、客户端流控 PaaS平台部署,支持HPA弹性扩容Service 服务本地完整支持读写请求 强依赖服务本地部署 弱依赖跨专线回主机房Discovery 同可用区调用优化 非多活服务回主可用区调用 东西向流量权重管理、灰

6、度等DCDNSLBAPIGWServiceSLBAPIGWServiceDiscovery上海可用区1上海可用区2Service BService CService B用户MID、设备ID来源Hash路由跨可用区调用DNSHTTP DNS故障降级重试故障降级重试Discovery南南北北向向东东西西向向缓存相关中间件支持:缓存相关中间件支持:统一Proxy,Sidecar/Proxyless SDK模式部署 支持Redis、Memcache缓存一致性处理方式:缓存一致性处理方式:DB/DB/KV+CacheKV+CacheCanal订阅同可用区存储Binlog,投递消息队列,由业务Job解析处

7、理后删除/更新缓存;纯缓存场景纯缓存场景热数据:多可用区独立缓存,由Job定时刷新存储:改造为Cache Aside模式或KV进行存储分布式锁分布式锁使用中心缓存集群改造为KV,支持CAS、持久化、跨可用区同步ServiceMQCacheGZ DB/KVJobServiceCacheMQJobProxyGZ DB/KVProxyCanalCanal单向同步读/写读读/写删除/更新删除/更新读读回源回源上海可用区1上海可用区2BinlogBinlog缓存不支持多机房同步,多活场景下缓存独立部署;服务需要订阅同机房数据源,进行数据更新/删除,维护缓存数据最终一致Sidecar/ProxylessS

8、idecar/ProxylessSidecar/ProxylessSidecar/Proxyless遵循单可用区内自产自消,支持多可用区间消息双向同步,根据业务场景下游三种消费处理模式各可用区自产自销(Local)多可用区全量消费(Global)全量消费(Global)自定义不消费可用区Topic(可用区1)Topic(可用区2)可用区1可用区2LocalLocal 可用区之间不进行任何数据同步 各可用区消费者消费当前可用区Topic全量数据Topic(可用区1+2)Topic(可用区1+2)可用区1可用区2GlobalGlobal 可用区之间数据双向同步 各可用区消费者消费当前可用区Topi

9、c全量(可用区1+2)数据Topic(可用区1+2)Topic(可用区1+2)可用区1可用区2GlobalNone 可用区之间数据双向同步 消费者可以消费当前可用区Topic全量(可用区1+2)数据;支持选择单可用区不消费(None)Sync适用场景:适用场景:ServiceService至至JobJob异步消息异步消息 ServiceAServiceA投递给已多活下游投递给已多活下游ServiceBServiceB适用场景:适用场景:ServiceAServiceA投递给未多活下游投递给未多活下游ServiceBServiceB适用场景:适用场景:消息由解析消息由解析BinlogBinlog

10、触发的全量数据,同触发的全量数据,同城双活可用区城双活可用区2 2不消费不消费Sync存储相关中间件支持:存储相关中间件支持:Proxy提供多可用区路由,并具备动态切换能力;支持MySQL、TiDB、Taishan(KV);流量切换禁写同城多活(同城多活(GZoneGZone):数据全局,主从读写分离,强一致场景读主:数据全局,主从读写分离,强一致场景读主MySQL/TiDB 强一致场景:SQL Hint级别:select/*master*/name from table where id 10;Taishan(KV)强制读主场景:Table粒度读写路由固定主表单元化多活(单元化多活(RZon

11、eRZone):数据分片存储,双向同步、冲突处理数据分片存储,双向同步、冲突处理DTSDTS同步组件:同步组件:实时双向数据复制,延迟小于10s 支持数据冲突检测,支暂停同步、发送通知、覆盖等策略 支持回环规避、主动限流、数据校验、数据过滤等ServiceGZ DB/KVServiceProxyGZ DB/KVProxy读/写GZ DB/KVGZ DB/KV单向同步读/写读读读/写读/写读上海可用区1上海可用区2ServiceRZ DBServiceProxyRZ DBProxy读/写RZ DBRZ DB读/写读读/写读/写读上海可用区1上海可用区2单向同步单向同步DTS双向同步SeqSeq同

12、城多活(同城多活(GZoneGZone)单元化多活(单元化多活(RZoneRZone)确定业务场景确定业务场景1、业务分级:业务访问量、用户体验及营收影响2、区分核心/非核心功能,与产研商定多活改造的场景接口依赖梳理接口依赖梳理1、依赖应用、接口,强弱依赖划分、多活情况2、依赖中间件、组件梳理消息场景梳理消息场景梳理1、涉及的消息队列梳理2、消息生产/消费者梳理3、下游处理消息方式接口链路梳理接口链路梳理1、场景涉及业务流程梳理2、涉及服务、接口梳理数据存储梳理数据存储梳理1、数据分类、一致性要求2、数据可丢失性、可恢复性3、涉及存储、缓存使用方式改造实施上线改造实施上线1、业务架构、中间件改

13、造方案2、多活管控接入、多活验证方案3、多活切量执行预案CDNSLBSLBServiceServiceDB(主)DB(从)CDNSLBServiceDBCacheMQCacheMQ写请求转发跨可用区调用DCDNSLBSLBServiceServiceGZDB/KVGZDB/KVCacheMQProxyCacheMQProxy写主APIGW管控APIGW管控Canal+JobCanal+JobPickerGZS上海1上海1上海2上海1上海2 服务仅在单个可用区部署 服务直连/域名接入存储 SLB+CDN配置规则发布 服务在同城可用区部署、前端多活 读请求支持多活,写请求转发 部分Cache/MQ

14、组件跨机房调用 服务接入Proxy,支持处理写请求;支持容灾自动切换 缓存一致性由Canal+Job维护;消息生产/消费可用区内闭环 服务接口发布由GW管理,Invoker统一发布至DCDN单活单活读多活读多活同城多活同城多活DCDNSLBAPIGWSidecar/SDKSidecar/SDKRZ DBProxy读/写上海可用区1上海可用区2服务发现服务发现Service路由计算/纠偏JobProxyMQSLBAPIGWSidecar/SDKSidecar/SDKRZ DBProxy读/写ServiceJobProxyMQInvoker冲突检测冲突检测DTSDTSBinlogBinlog路由计

15、算/纠偏 存储表结构改造存储表结构改造增加分片字段、校验时间字段写入DB加入分片ID,拆分多行,各可用区只写本可用区的数据 分布式分布式IDID生成器生成器 自增、雪花,支持服务端+本地SDK 流量路由流量路由Sidecar/SDK流量代理业务维度路由分片计算 DTSDTS双向同步双向同步冲突检测冲突检测校验时间字段冲突判断根据需要执行投递冲突消息/覆盖/暂停 缓存、缓存、消息计数场景改造消息计数场景改造单元独立部署全部分片数据合并计算冲突处理冲突处理SeqSeqDCDNSLBAPIGWServiceMQCacheGZ DB/KVJobSLBAPIGWServiceCacheMQJobProx

16、yGZ DB/KVProxyCanalCanal单向同步(原生)单向同步(原生)读/写读读/写Invoker删除/更新删除/更新读读回源回源上海可用区1上海可用区2BinlogBinlogSLBAPIGWServiceCacheMQJobCZ DB/KVProxyCanal读删除/更新读回源华南可用区1Binlog单向同步(单向同步(DTSDTS)RWRWRWRWR R服务发现服务发现服务发现核心依赖当前可用区调用弱依赖回上海可用区调用InvokerCMDBDashboardOAFlowDCDNKVAPIGWMQDiscovery业务资源元信息工单审批登录态平台鉴权Omega规则类型:规则类型

17、:APIGWAPIGW管理的标准管理的标准APIAPI应用根路由,Prefix模式规则类型:非标的多活规则规则类型:非标的多活规则NodeSSRWeb HTML规则类型:非多活规则规则类型:非多活规则回源默认规则缓存规则其他非多活规则多活元信息规则治理Invoker平台多活&强依赖降级&演练多活编排、接入流程化预检、可观测、验证能力加强编排切量预检可观测验证选择业务定义多活类型接入层规则编排:DCDN数据层编排:KV、DB消息层、东西流量编排:支持中DB容量巡检:CPU/MEM、连接池、限流等延迟巡检:DB、KV同步状态隔离巡检:存储资源是否跨业务混用巡检指标观测业务多活流量观测业务/应用SL

18、O指标观测单可用区多活流量闭环业务强弱依赖故障演练 业务,支持编排 业务域,不编排 CZone/GZone/RZone 地域、可用区选择 数据延迟 单机房服务故障 基础设施故障等业务范围业务范围多活类型多活类型切量申请切量申请 多活路由规则 DCDN 调度模式接入层编排接入层编排 存储:KV、DB 存储下游消费任务数据层编排数据层编排切量编排切量编排 选择业务对象 切量权重、灰度 切量对象:DCDN、KV、DB业务定义、多活资源编排业务定义、多活资源编排切量申请、切量对象选择切量申请、切量对象选择 应用CPU Cache CPU DB/KV CPU DB连接数 DB同步延迟 KV同步延迟 DT

19、S任务延迟 多活规则维度QPS 多机房流量调度观测容量预检容量预检延迟预检延迟预检流量观测流量观测 接入层限流 微服务框架限流 强依赖下游服务限流限流预检限流预检巡检观测巡检观测 资源CPU容量 连接池容量 限流容量SLOSLO观测观测 链路依赖 链路SLO容量容量/延迟延迟/限流等预检限流等预检流量流量/限流观测限流观测服务服务/Cache/DB/Cache/DB等容量观测等容量观测 服务依赖展示 组件依赖展示 依赖多活检查 强弱依赖标记 依赖自动发现 自动故障演练 报告输出确认依赖展示依赖展示依赖检查依赖检查故障演练故障演练 跨可用区调用发现 核心依赖可用区闭环 弱依赖排期演练流量闭环流量闭环服务服务/组件依赖可视化组件依赖可视化流量来源流量来源/调用检查调用检查强弱依赖故障演练强弱依赖故障演练收益收益分析分析成本成本管理管理容灾容灾收益收益容量容量收益收益技术技术收益收益运维运维成本成本资源资源成本成本业务业务成本成本1.高可用:故障应急时的有效快恢手段2.解决机房容量、组件连接池限制,满足业务增长3.变更灰度管控能力、重大活动稳定性保障1.数据中心、基础设施、硬件资源投入2.业务架构改造、基础架构及组件改造成本3.架构复杂度带来的资源管理、运维管理成本同城多活 单元化多活 +异地读多活 异地多活123Thanks开放运维联盟高效运维社区DevOps 时代荣誉出品荣誉出品

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(吉翔-B站多活架构解析、最佳实践与管控治理.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部