资源描述
精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远阿里巴巴网站技术详解阿里巴巴网站技术详解2024/7/27精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远纲要纲要一、前一、前 言言二、网站部署的三个阶段二、网站部署的三个阶段三、新的挑战三、新的挑战四、总结四、总结精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远阿里巴巴(A)是一个服务于全球企业的(B2B)电子商务平台。用户遍布中国以及世界各地,为了更好的为这上千万的用户提供网络服务,我们建立了多个站点去为用户提供应用.总体而言,我们的站点发展经历了以下三个阶段:l单站点l双站点l多站点前前 言言精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远纲纲 要要一、前一、前 言言二、网站部署的三个阶段二、网站部署的三个阶段三、新的挑战三、新的挑战四、阶段性总结四、阶段性总结精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远网站部署的三个阶段精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远u应用都是无状态的u状态数据都保存在以下的设备中A.数据库B.存储第一阶段第一阶段-单站点单站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远l状态数据都保存在数据库和存储,由数据库和存储提供分布式以及HA的解决方案。l应用都是无状态的(尽量用Cookie解决session的问题),非常便于扩展。描述缺点l部分地区用户的使用体验不佳l系统性能和扩展性不好第一阶段第一阶段-单站点单站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远u可用性的要求单个IDC发生故障,例行维护,系统升级都会影响所有的用户,进而降低网站的可用时间。u用户体验的问题网站是为全球用户提供服务的,物理距离产生的网络延时是不可避免的。10000公里=延时30毫秒电子商务网站的内容通常都是动态的,CDN只能解决大多数静态资源的问题(图片,css,js)。驱动力第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远DNS负载均衡(IDC之间的负载均衡)数据同步解决方案应用拆分镜像需要解决的问题第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远DNS负载均衡第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远数据同步1.0-方案选型数据库提供的方式专业工具,例如shareplex自主开发同步效率中高中双向同步不支持支持支持关联的文件同步不支持不支持支持异构数据库不支持不支持支持冲突检测逻辑不支持不支持支持第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远数据同步1.0-实现基于AOP方式的SQL拦截根据变更的数据找到关联的文件.异步的进行SQL以及文件的复制.第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远第二阶段第二阶段-双站点双站点数据同步1.0-缺点数据同步1.0-优点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远nCAP原理写应用:符合Consistency&Availability读应用:符合Partitiontolerance&Availability,结论:读应用更容易实现跨IDC的部署n问题数据同步会放大数据不一致&数据不完整的情况.这会增加镜像站点应用的复杂性.应用拆分-分析第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远应用拆分-注意事项第二阶段第二阶段-双站点双站点被镜像的读应用需要从设计上避免数据完整性的问题.设计业务流程的时候需要避免跨IDC的WebFlow.精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远应用拆分示意图第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远部署结果第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远u解决了大多数读应用和少量写应用的用户体验问题.u实现了读应用的跨站点的HA.提高了读应用以及网站的整体可用性.u读应用的数据源尽量迁移到了Searchengine和cache上为其性能和可扩展性带来了很大的收益.收益第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远不完全的镜像同步的延迟到导致应用之间数据不一致的问题,尤其在不同IDC之间存在应用的依赖时,这个问题会被放大。数据的双向同步带来了一些不能解决的数据冲突,需要在设计的时候进行规避。缺陷第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远应用规模的日益复杂同步数据量的增大数据同步1.0的缺点逐渐凸显.数据冲突的问题不能拦截所有的数据变更开始酝酿升级后记第二阶段第二阶段-双站点双站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远起因第三阶段第三阶段-多站点多站点Disaster精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远目标第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远挑战第三阶段第三阶段-多站点多站点多个多个IDC之间的数据同步之间的数据同步数据同步的吞吐量以及数据一致性的问题数据同步的吞吐量以及数据一致性的问题.写应用的镜像写应用的镜像&数据拆分数据拆分精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远变更数据的急剧增长导致同步的效率成为瓶颈.结果:n站点之间的数据延迟不断加大n应用之间的数据不一致的情况逐渐加剧数据同步现状第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远数据同步的瓶颈并不在于网络数据同步的瓶颈最终受制于为了满足数据一致性而对写入操作进行的排序数据同步瓶颈分析第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远在数据库层面记录数据变更基于Base原则消息驱动并行所有可以并行的内容.有选择的侵入业务简单的处理冲突的逻辑Merge操作数据同步2.0设计原则第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远HA方式Master-SlaveMaster-Master业务数据冲突实现成本维护成本?硬件成本可用性数据丢失情况吞吐量用户体验写应用的镜像方案选择第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远Sharding.去中心化,缩小中心WriteSticky:解决跨站点的WebFlow的问题事后补偿异步写应用的镜像解决方案第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远提高对数据不一致窗口的容忍程度数据库记录中的文件路径的问题.降低多点更新数据的冲突可能性引用计数的问题应用的注意事项&案例第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远IDC之间的数据不能遵循ACID,只遵循Base的原则.下面两个问题是提高用户体验的关键.1.提高同步性能,缩小数据不一致性窗口2.尽量保证目的端数据库的数据完整性.单个IDC内部的数据一致性优于跨IDC的数据环境.所以。尽量把单个用户的操作行为限制在单个IDC中.总结第三阶段第三阶段-多站点多站点精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远纲纲 要要一、前一、前 言言二、网站部署的三个阶段二、网站部署的三个阶段三、新的挑战三、新的挑战四、阶段性总结四、阶段性总结精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远集中的持久化技术已经不足以支撑应用的写入的吞吐量,其他的持久化技术开始引入分布式数据库其他分布式持久化方案的引入:KV-Engine,DFS.分布式事务.一、应用架构发展的需要新的挑战新的挑战精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远新的挑战新的挑战精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远数据复制的节点增加.硬件成本随之增大一些特殊应用对同步实时性的要求提高.随着分布式持久化技术的引入.单个IDC的数据持久化能力得到极大的提升.但数据同步技术因为受制于数据一致性的问题,逐渐成为了瓶颈.设备数量的增长对自动化管理提出了新的要求.多站点的发布,自动化测试以及应用监控.跨站点的动态负载均衡问题新的挑战新的挑战精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远数据同步方案的优化有效地控制数据备份的数量.在合适的场景下使用反向代理技术.水平拆分优于垂直拆分.应用监控平台自动化发布和部署的平台.解决方案新的挑战新的挑战精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远优化数据变更的采集方式根据数据的类型设定不同的通道和策略.解决各种分布式数据源的数据一致性的问题.(分布式事务的场景)纪录和尝试解决数据冲突的问题.数据同步3.0新的挑战新的挑战精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远适用范围数据总量比较大,访问相对集中的静态资源;例如图片信息.访问量比较小的一些动态应用.效果降低同步数据量降低存储设备的投入减少因为同步延迟而造成的数据不一致.反向代理新的挑战新的挑战精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远纲纲 要要一、前一、前 言言二、网站部署的三个阶段二、网站部署的三个阶段三、新的挑战三、新的挑战四、阶段性总结四、阶段性总结精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远镜像的关键是数据同步的问题.根据D&Q的原则.将中心最小化.采用异步或者事后补偿的机制降低中心应用对其他应用的可用性的影响.单个IDC的核心数据保证可以保证强一致性,多个IDC的核心业务数据只保证最终一致性.在业务上解决数据冲突的问题并容忍一定程度的不一致.采用数据Sharding技术,水平拆分优于垂直拆分.总结总结精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远Q&A精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远谢谢 谢!谢!
展开阅读全文