高并发下的网站架构
万亿级企业级三高(高可用、高并发、高可靠)微服务架构设计和实践

万亿级企业级三⾼(⾼可⽤、⾼并发、⾼可靠)微服务架构设计和实践介绍打造顶级思维模型篇,以企业三⾼微服务架构设计为例,打造⾃⼰顶级思维模型;⼀直关注⽞姐,以下介绍和启发都是来源与⽞姐课程分享,每天学习进步加油!⽬录领域驱动设计DDD与实践微服务架构设计与拆分⽅法论(拆分⽅法论、架构设计折中、折中思维模型、应⽤实践)微服务架构业务真是案例同步/异步模式深度剖析(阿⾥/腾讯云/异步架构模式)顶级思维模型深度剖析1. 领域驱动设计DDD与实践Domain Driven Desgin (领域驱动设计),领域驱动设计就是⾯向对象编程,DDD(领域驱动设计)不是贫⾎模型、充⾎模型、领域模型降本增效DDD本质就是服务⾼内聚、低耦合DDD落地⽅式就是按照业务领域拆分服务2. 微服务架构设计与拆分⽅法论业务侧(垂直⽅向):领域驱动设计,垂直拆分DDD与⽬前微服务分层结构如下:Entity->ModelAggredateRoot->LogicService->Controller架构侧(⽔平⽅向):⽔平拆分综上所述微服务就是领域驱动设计和架构⽔平拆分,微服务可以分为服务和数据;2.1 业务侧(垂直⽅向):领域驱动设计和实践业务领域设计拆分原则也可以从物理和逻辑进⾏拆分,物理就是强耦合,逻辑是弱耦合,⽐如:⽤户、商品、订单、交易,⽤户与商品、商品与订单、商品与交易都是逻辑关系,即可以把服务拆分为:⽤户服务、商品服务、订单服务、交易服务;也可以从逻辑进⾏拆分,如⽤户服务会有注册、登录请求,注册为写请求,登录为读请求进⾏拆分(API);所有的拆分⼀定要从业务⾓度去考虑,任何脱离业务的架构都是耍流氓;选择优雅的解决⽅案。
2.2 ⽔平⽅向:架构功能拆分和实践⽔平拆分分层图以上是通过软件架构功能进⾏⽔平拆分服务,以及每⼀层拆分服务对应功能;备注:每⼀层服务访问都是从上到下,不允许⽔平服务层访问⼆⼿交易平台微服务架构实践在以上服务分层架构上⾯,也可以把⼀些公共的功能进⾏提取出公共的服务,即微服务中台架构。
高并发任务调度系统的架构设计

高并发任务调度系统的架构设计随着互联网的迅猛发展,越来越多的应用场景需要处理大量的并发任务。
为了能够高效地处理这些任务,高并发任务调度系统应运而生。
本文将围绕高并发任务调度系统的架构设计展开讨论,并介绍其核心组件和工作流程。
一、架构设计概述高并发任务调度系统的架构设计旨在实现任务的快速调度和高效处理。
它通常由调度器、任务队列、执行器和监控器等核心组件构成。
1. 调度器:调度器是整个系统的核心,负责根据任务的优先级和调度策略,将任务分配给可用的执行器进行处理。
调度器需要具备高并发处理能力和动态可调度的特性,以应对不同任务场景的需求。
2. 任务队列:任务队列用于存储待执行的任务,它可以是基于内存的队列或分布式消息队列。
任务队列的设计应考虑到高并发情况下的并发读写和数据一致性等问题。
3. 执行器:执行器是任务的实际执行者,它负责从任务队列中获取任务并执行。
执行器需要具备高并发执行能力和任务执行状态的监控与管理能力,以确保任务能够按时完成并保证任务执行的质量。
4. 监控器:监控器用于监控整个任务调度系统的运行状态和性能指标。
它能够实时采集系统的运行数据并进行分析,以便及时发现和解决潜在的问题。
二、任务调度流程高并发任务调度系统的核心工作流程如下:1. 任务提交:用户通过接口或其他方式将任务提交到任务调度系统。
2. 任务分配:调度器根据任务的优先级和调度策略,将任务分配给可用的执行器。
任务分配可以采用轮询、负载均衡或其他算法。
3. 任务执行:执行器从任务队列中获取任务,并根据任务的类型和要求进行具体的执行。
执行过程中,执行器需要记录任务的执行状态和结果。
4. 任务完成:任务执行完成后,执行器将执行结果返回给调度器,并将任务标记为已完成。
5. 监控与管理:监控器实时采集任务调度系统的运行数据,并进行分析和展示。
同时,监控器还能够对任务执行状态和系统性能进行监控和管理。
三、关键技术和挑战在设计高并发任务调度系统时,需要考虑以下关键技术和挑战:1. 并发处理:高并发任务调度系统需要具备高并发处理能力,能够同时处理大量的任务请求。
高并发系统的架构设计与优化

高并发系统的架构设计与优化随着互联网的不断发展,高并发系统越来越普遍,而高并发系统的架构设计和优化成为了很多企业所关注的重点。
本文将从架构设计入手,探讨高并发系统的优化方法。
一、架构设计高并发系统的架构设计是整个系统的基础。
一个好的架构设计可以为后续的优化工作打下基础,降低后期工作难度和成本。
1.分布式架构分布式架构是实现高并发系统的重要手段之一。
将系统拆分为多个模块,通过网络通信协作完成一定的任务。
这样可以将压力分散到多台服务器上,灵活地扩容和缩容。
2.微服务架构微服务架构是将整个系统拆分成若干个小服务模块,每个模块有独立的代码和资源。
这样设计可以更快地开发和部署,避免整个系统因为某个模块的问题而宕机。
同时,微服务架构也可以使用不同的技术栈和语言,让各个模块做到最优化,进一步提高整个系统的性能。
3.缓存技术缓存技术是高并发系统的重要手段之一,可以将常用的数据在内存中存储起来,避免每次请求都从数据库中读取,降低系统的负载。
常见的缓存技术有Redis、Memcached等。
二、优化方法在架构设计的基础上,对于高并发系统,还需要进行一定的优化工作,以达到更好的性能和稳定性。
1.数据库优化数据库是高并发系统的瓶颈之一,因此需要进行一些优化工作,缓解对数据库的压力。
(1)使用索引使用合适的索引可以提高数据的查询速度,降低数据库的负载。
但是,索引建立得不好,反而会影响性能,因此需要有一定的数据库设计和优化经验。
(2)水平切分和垂直切分当数据库的数据量达到一定程度的时候,需要对其进行水平切分或垂直切分,将不同的数据存储在不同的服务器上,避免单一数据库过载。
2.负载均衡负载均衡是高并发系统必须考虑的问题之一,可以将请求平均分配到不同的服务器上,提高系统的稳定性和吞吐量。
常见的负载均衡算法有轮询算法、加权轮询算法、随机算法等。
3.CDN加速CDN是指内容分发网络,可以将网站的静态资源存储在离用户最近的服务器上,加快用户访问速度。
电商高并发解决方案

电商高并发解决方案电商行业的快速发展带来了巨大的商机,同时也给电商平台带来了高并发访问的挑战。
在电商促销活动、热门商品上线以及大规模推广等情况下,高并发访问可能会导致网站崩溃、卡顿等问题,进而引发用户流失和信誉下降。
因此,设计和实施高并发解决方案是电商平台的重要任务之一。
一、优化系统架构电商平台的系统架构是保证高并发处理的基础。
首先,需要采用分布式架构来应对潜在的高并发问题。
将系统分成多个模块并在多个服务器上部署,可以增加系统的承载能力。
其次,使用缓存系统来减轻数据库负载。
将频繁访问的数据缓存在内存中,可以大幅度提高系统的读取速度。
此外,使用负载均衡技术可以将请求均匀地分配给多个服务器,从而平衡系统负载,提高响应速度。
二、数据库优化电商平台的数据库是存储和处理大量数据的关键。
为了应对高并发情况,可以从以下几个方面进行优化。
首先,合理设计数据库表结构,避免不必要的冗余字段和表连接操作,提高数据库查询性能。
其次,使用索引来加速数据查询。
根据常用查询条件,合理添加索引可以大幅度提高查询速度。
此外,使用数据库读写分离技术,将读操作和写操作分开处理,可以提高系统的吞吐量。
三、缓存技术的应用缓存技术是解决高并发问题的有效手段之一。
通过将热门商品、广告图片等频繁访问的数据缓存在缓存服务器中,可以降低数据库的负载,提高系统的响应速度。
同时,可以使用分布式缓存技术,将缓存数据分布在多个节点上,减少单点故障的风险。
四、静态资源优化电商平台中,大量的静态资源如图片、CSS和JavaScript文件会占据大量的带宽和加载时间。
为了提高系统的响应速度,可以将这些静态资源部署在CDN(Content Delivery Network)上。
CDN利用全球分布的节点来缓存静态资源,当用户请求时,可以从离其最近的节点获取资源,极大地减少了资源加载的时间。
五、异步处理技术在电商平台中,一些耗时的操作如订单确认、库存更新等可能会导致系统响应变慢。
高并发系统设计的架构与优化

高并发系统设计的架构与优化随着数字化进程的深入和社会信息化的加速,互联网应用的高并发要求越来越高。
在此背景下,如何设计和优化高并发系统成为了信息技术领域研究的热点问题。
本文将从系统架构和优化两方面进行探讨。
一、系统架构设计高并发系统的架构设计是保证系统稳定性和可扩展性的关键。
一个好的架构设计方案应该具备以下特点。
1. 数据库读写分离在高并发场景下,数据库成为系统瓶颈之一。
为了解决这个问题,通常采取读写分离的策略。
即将读操作和写操作分别由不同的数据库实例处理。
这样既可以提高数据库的读写效率,又可以减轻数据库的负担,从而降低系统崩溃的风险。
2. 负载均衡负载均衡是为了让系统能够平衡地分配压力,从而使得系统总体上的吞吐量最大化。
通常采取硬件负载均衡或软件负载均衡。
硬件负载均衡通常使用专门的负载均衡服务器,而软件负载均衡则通过程序来实现。
无论哪种负载均衡方式,都必须能够实现节点之间的数据同步。
3. 分布式存储分布式存储可以解决单点故障以及数据存储管理问题。
系统可以将数据分散存储到多个节点上,这些节点之间可以互相备份,如果其中一个节点发生故障,其他节点可以顶替其工作。
从长远来看,分布式存储也可以更好地适应系统的扩展性需求。
4. 缓存机制缓存技术可以将数据存储在内存中,加快系统的响应速度,并可以有效减轻数据库的压力。
常用的缓存技术有Redis、Memcached等。
这些技术可以让系统数据更快地访问,从而更好的满足用户的需求。
5. 异步消息队列在高并发系统中,异步消息队列可以保证数据的异步化处理和传递。
异步方式可以移除数据的实时性要求,从而减缓系统的压力。
同时,消息队列适合处理大量的数据流,可以提高系统的性能。
二、系统优化除了系统架构的设计外,还需要进行系统优化,以进一步提高系统的性能和稳定性。
优化方面可以从以下几个方面入手。
1. 数据库优化数据库是高并发系统中的一个重要组成部分。
针对数据库,主要的优化手段包括合理使用索引、优化SQL语句、使用缓存等。
高并发应用数据库解决方案

高并发应用数据库解决方案在当今的信息化社会中,高并发应用的需求越来越普遍。
无论是电子商务、社交媒体还是在线游戏,都需要应对大量用户同时访问的情况。
而这种高并发的访问量对数据库的性能提出了更高的要求。
本文将介绍几种常见的高并发应用数据库解决方案,帮助您选择适合自己应用的方案。
一、读写分离架构读写分离是一种常见的解决高并发问题的方法。
该架构通过将读和写操作分离到不同的数据库实例中,可以提升系统的整体性能。
通常情况下,读操作远远多于写操作,因此将读操作分散到多个从数据库中可以有效减轻主数据库的负载。
同时,通过主从同步机制,保证数据的一致性。
在读写分离架构中,主数据库负责处理写操作,而从数据库负责处理读操作。
对于一些数据一致性要求较高的应用场景,可以使用主从同步工具实时同步数据,确保数据的一致性。
二、数据库分库分表数据库分库分表是一种常见的垂直拆分数据库的方式。
该方式通过将不同的数据分散到多个数据库实例中,减轻单一数据库的压力,提高系统的整体性能。
具体而言,将数据库按照业务功能或者数据类型进行拆分,每个数据库实例只负责处理相关的业务数据。
在数据库分库分表的架构中,常使用分片技术来实现数据的拆分和路由。
通过对数据进行分片,可以将数据分散到不同的数据库中,提高系统的并发读写能力。
三、缓存技术的应用缓存技术是常见的提高系统性能的手段之一。
通过使用缓存,可以将一部分热点数据存储在内存中,提高数据的访问速度。
对于高并发应用来说,缓存技术可以有效减轻数据库的压力。
常见的缓存技术包括内存数据库、分布式缓存和CDN等。
通过使用这些技术,可以将部分数据直接缓存在内存中,减少对数据库的访问。
四、数据库水平拆分数据库水平拆分是一种常见的解决高并发问题的方法。
该方式通过将一个表的数据拆分到多个数据库中,减少单一数据库的查询压力,提高系统的并发能力。
数据库水平拆分可以根据数据的某一字段进行拆分,例如按照用户ID进行拆分。
通过这样的方式,可以将不同的数据分散存储到不同的数据库中,提高系统的并发读写能力。
面向高并发的Web系统架构设计

T 技
术
Sc i en ce a nd Tec hn ol og y I n no va t i on He r a l d
面 向高并发的W e b 系统架构设计①
庄欠满 ( 山东省 农村信用 社联合社 山东济南 2 5 0 0 0 1 )
摘 要 : 近年来 互联 网的普及以及w e b 2 . 0 技术的兴起和发展使得w e b 系 统的用户数不断增 多 , 系统在运行过程中面临着高并发对性能的挑战 。
大量的并发访问导致了网 络 阻塞 , 数据处理滞后、 系统性能降低 甚至运行瘫 疾。 该文分析 了 w e b 性能的影响因素, 研 究了 面南高并发的w e b 系统架
构设计, 从 数据 访问、负戴均衡 , 程序设计等方面提 出了 优化 系统架构设计的方法和策略。 一
关键 词: 高并发 W e b /  ̄ . 统 负 载均衡 架构设计
特 定 的解 决方 案来 减轻 系统中服 务端 的负载 压 力。 系统框 架设计如 图1 所示 。 1 . 1高并发 对We b 系统性 能的影 响 高并 发 是 指 在 同 一 时 刻 有 大 量 用户 访 问对系统 进行 信 息服 务请 求或 者应 用功 能使 2 解决 方案 用, 高并发 对系统 的请求 响应 时间、 数 据处 理 2 . 1 缓存访 问 速度、 系统 性 能和 可靠 性都 产生了影 响 。 We b 当网站 面 临 高并发 访 问的 时 候 , 大量 的 系统的服 务资 源包括 网络 带宽 、 页面 缓存、 系 用 户向服 务 器 提 出了访 问请 求 , 这 些 请求 需
中图分类号 : T P 3 7 4 — 0 9 8 X( 2 0 1 3 ) 0 2 ( a ) 一 0 0 3 3 一 O 1
淘宝高并发解决方案

概述淘宝是中国最大的电商网站之一,每天有数以亿计的用户访问淘宝平台。
在高并发的访问环境下,如何保证淘宝的稳定性和可用性是一个重要的挑战。
本文将介绍淘宝高并发解决方案,包括架构设计、缓存优化、数据库优化以及负载均衡。
架构设计淘宝采用了分布式架构来应对高并发的访问压力。
整个系统被划分为多个服务模块,每个模块独立运行,并通过消息队列进行通信。
这种架构设计可以有效地提高系统的可伸缩性和可扩展性。
缓存优化为了减轻数据库的压力,淘宝采用了大量的缓存来加速数据访问。
其中,最核心的缓存技术是利用Redis来缓存热点数据。
通过将频繁访问的数据放入Redis缓存中,可以大大提高系统的响应速度和吞吐量。
淘宝还利用CDN(内容分发网络)来缓存静态资源,例如商品图片、CSS文件和JavaScript文件。
CDN可以将这些静态资源缓存在全球各地的节点上,用户可以就近访问这些缓存节点,从而提高访问速度。
数据库优化淘宝使用了分布式数据库来处理海量的数据。
数据库采用主从复制的方式,将读写操作分散到多个数据库节点上,从而提高数据库的并发处理能力。
为了减少数据库查询的负载,淘宝采用了数据库分库分表的技术。
将数据按照一定的规则分散到多个数据库和表中,从而均衡数据库的负载,并且降低了单个数据库的数据量和并发访问量。
此外,淘宝还采用了数据库的读写分离技术。
将读操作和写操作分别路由到不同的数据库节点上,从而提高数据库的读写性能。
负载均衡淘宝使用了负载均衡技术来分发用户的请求,以实现高并发的访问。
主要的负载均衡技术包括DNS负载均衡和反向代理负载均衡。
DNS负载均衡将用户的请求解析到多个服务器的IP地址上,从而使得用户的请求被均衡地分发到不同的服务器上。
反向代理负载均衡则是通过将用户的请求发送到多个反向代理服务器上,由反向代理服务器再将请求分发给后端的多个应用服务器。
这样可以均衡地分担用户的请求压力,提高系统的并发处理能力。
总结淘宝面临着海量用户的高并发访问压力,为了保证系统的稳定性和可用性,需要在架构设计、缓存优化、数据库优化和负载均衡等方面进行优化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
万能出错页面:秒杀活动已经结束
任何出错都302跳转到此页面 位于另外集群
万幸:最终所有的预案都没有用上
秒杀活动结果
88小时秒杀,坚守阵地,大获成功 秒杀还是被秒杀?终于有了答案 三道阀门设计非常有效,拦住了秒杀器
静态集群总并发情况 (首页,秒杀列表,秒杀商品页面)
交易系统集群总并发情况 (下单页面)
高并发对网站性能的影响
并发数对吞吐量的影响
并发数对服务器平均请求响应时间的影响
并发数对用户平均请求等待时间的影响
高并发实例:开业秒杀活动
商业需求
为庆祝开业退出88小时不间断秒杀活动 每小时整点推出8款商品,拖拉机,牛,马桶,沙发…… 每款商品供168件,每人限批3件,成交人数56人 CCTV黄金广告时间,各种网络,平面媒体轰炸,总广告费:1.5亿 接到运营通知,距秒杀开始仅仅 5 天时间
秒杀商品列表/秒杀商品介绍页面,如何判断秒杀开始否
答案: valid-offer.js
三道阀门的设计
阀门:基于TT的计数器
序号 1 2 3 阀门上限
限制进入秒杀页面 ,1000 限制进入下单页面 ,100 100 限制进入支付宝系统,56
秒杀器的预防
秒杀Detail页面
URL:随机 秒杀前2秒放出,脚本生成,秒杀前 1000次访问上限控制【每件商品只能放入1000人浏览】
CDN准备:Chinacache沟通;借用Taobao CDN
秒杀系统:架构目标
1.图片网络带宽:1.0G
新增图片带宽:必须控制在 1.0G 左右 每件商品秒杀页面的图片总大小不得超过: 1000000/(1000*8) = 125K/每商品
2.网站并发:
单件商品并发:1000 【来自运营的预估】 总并发: 8(件商品)X 1000(人/商品)=8000
1688秒杀系统:组成
简单系统:
三个页面组成:秒杀商品列表,秒杀商品介绍,下单
【静态集群】 下单成功后,进入支付宝系统,走支付流程
【中国站交易动态集群 】
秒杀系统:设计原则
静态化
采用JS自动更新技术将动态页面转化为静态页面
并发控制,防秒杀器
高并发下的风险
高并发下的事故
网络带宽耗尽 服务器Load飙高,停止响应 数据库瘫痪
秒杀
事故:网站运营旺旺推广页面弹出,1兆大图片导致带宽耗尽 增加审核机制:运营推广增加的图片流量不能超过现有流量的30% 合作媒体推广:迅雷,暴风影音浮出广告,导致旺铺集群Crash 开业88小时不间断秒杀活动
下单页面:
订单ID,随机 不能直接跳过秒杀Detail页面进入 每个秒杀商品,带预先生成的随机Token作URL 参数 如果秒杀过,直接跳到秒杀结束页面 100次访问上限控制【每件商品只能放入1000人下单】
Web Server 调优 – Apache调优
KeepAlive相关参数调优
其他参数调优
性能大幅提升,中国站 全站下线1/3应用服务器
约一百台,明年不用采购新机器
架构更轻量, 配置更简单 应用更无状态化, 开发和维护的福音 更加安全 中国站应用服务器升级项目: Apache2.2+Mod-Proxy+Jetty7.1.5 与中国站现有架构性能对比
改进二:前端优化自动化
中国站服务器响应时间<150ms, 但Offer Detail页面用户等待时间5s,大部分时间耗在路上(资源请求和网络传输)
关闭cookies-log日志 打开Linux sendfile() 关闭无用的module
HostnameLookups 设为off, 对allowfromdomain等后的域名不进行正向和反向的dns解析
mod_Gzip (秒杀页面,非图片html文本所占流量比重可忽略不计,zip意义不大), mod_Beacon, mod_hummock(等待反应过来,秒杀已经over了)
技术挑战
瞬间高并发
秒杀器
8000并发:预估秒杀在线人数可达8000人 风险:带宽耗尽 服务器:崩溃,可以理解成自己给自己准备的D.D.O.S攻击 第一种:秒杀前不断刷新秒杀页面,直到秒杀开始,抢着下单 第二种:跳过秒杀页面,直接进入下单页面,下单
秒杀系统:服务器和网络准备 服务器准备
Web Server 调优 – JBoss调优
Mod-jk worker 调优
JBoss AJP Connector
Tomcat APR 设定
秒杀静态页面优化
图片合并
8张图片合并成1张,css偏移展示 减少HTTP请求数,减少请求等待数 减少发送cookies的量
HTML内容压缩 图片压缩:图片Bytes < 长X宽/2250 HTML Header Cache-Control设置 CSS,JS 精简
交易系统调优目标:
并发 下单页面 (优化前) 下单页面 (优化后) 20 40 TPS 100 400
关闭 Keep Alive(分析交易系统accesslog,用户在短时间内连续点击概率很低) JVM优化 优化CMS 垃圾回收器的参数 消灭 Top10 Bottlenecks
Velocity参数调优 采用DBCP1.4 替换C3P0 Offer 产品参数的XML解析
设置阀门,只放最前面的一部分人进入秒杀系统
简化流程
砍掉不重要的分支流程,如下单页面的所有数据库查询 以下单成功作为秒杀成功标志。支付流程只要在1天内完成即可。
前端优化
采用YSLOW原则提升页面响应速度
1688秒杀系统:静态化(1)
秒杀商品list和Detail是静态Html页面
1688秒杀系统:静态化(2)
CSS,JS 精简到极致,部分直接写在页面中,减少Http请求次数
下单页面优化
数据库操作:全部砍掉
原下单页面要访问8次数据库,全部砍掉
秒杀流程精简
砍掉填写或选择收货地址,放在秒杀成功后填写 砍掉调用是否开通支付宝接口,秒杀首页文案提示必须开通
采用内存缓存
秒杀Offer数据,支付宝相关信息,缓存
交易系统性能优化
高并发下的网站架构
阿里巴巴中国站性能调优实践
何崚(阿里巴巴中国站架构师)
旺旺ID:maxheling E-mail:max.hel@ 【内部讲座资料,请勿外传】
中国站性能现状
中国站网站的正常流量情况
并发(单台) ,高峰期 < 10 吞吐量(TPS,单台) 高峰期,<60 CPU负载 Load 高峰期,<2, 大部分服务器<1 CPU使用率 , 一般只占1颗核,平均60%左右 服务器平均响应时间 高峰期 , <150ms 图片总流量带宽 1.8G(各网站总合)
机动服务器10台,备用 拆东墙补西墙战略 壁虎断尾策略
所有办法均失效的情况下,例如流量耗尽 非核心应用集群统统停止服务,如资讯,论坛,博客等社区系统 保住首页,Offer Detail,旺铺页面等核心应用的可用性 5天时间来不及采购服务器,因此SA待命,随时准备将非核心应用集群的冗余服务器下线,加入到秒杀集群
图片自动压缩 (CMS自动压缩) Cookies服务化(控制cookies的大小) 中国站前端延迟加载框架SmartLoad(只加载首屏数据) Google mod_pagespeed module 自动压缩图片,静态资源,智能浏览器缓存技术 Google Diffable (增量下载静态资源技术)
二跳页面的优化
其他页面
前端优化: Yslow规则调优
减少http请求,合并JS,CSS,图片,充分利用浏览器缓存
图片压缩,公式: 避免发送cookies
交易系统优化
普通订单管理列表和1688秒批订单管理列表分离 禁止用模糊查询功能
应急预案
域名分离,独立域名,不影响中国站原有业务
Style集群: 图片服务器集群: 静态页面集群: 出问题直接把1688相关域名卡掉,所有请求跳到万能出错页面
改进一:采用更轻量/快速的服务器(1)
采用Lighttpd 替代 Apache 杀手锏(AIO)
改进一:采用更轻量/快速的服务器(1)
Lighttpd 1.5 VS Apache2.2.4
小页面性能(100K)
http_load -verbose -timeout 40 -parallel 100 -fetches 500 http-load.10M.urls-100M
改进三:架设镜像站组建山寨CDN
中国站青岛镜像站项目
改进四:采用反向代理 加速核心页面
在Offer集群前部署Squid反向代理集群
Offer Detail的Squid反向代理改造
基于消息的Squid缓存更新机制
改进五:海量数据的透明垂直切分
中国站性能优化领域立项中
不断增加的表,是 应用的沉重负担……
(距秒杀开始仅五天时间来不及采购)
style服务器(Lighttpd集群):5台 图片服务器(Nginx集群) :5台 静态服务器(Apache集群) :10台 交易服务器(JBoss动态集群):10台
•
带宽准备
图片出口带宽上限:2.5G
(出口带宽支持10G,但图片服务器 集群的处理能力:图片服务集群最大并发处理能力 X 网站平均图片大小 = 2.5G)
大页面性能(10M)
改进一:采用更轻量/快速的服务器(1) 性能关键:Web Server 的高性能I/O
Apache1.3
Apache2.2 支持
注意:sendfile()和AIO 的操作系统相关性: 依赖 高版本Linux操作系统
Lighttpd1.5
改进一:采用更轻量/快速的服务器(2)
中国站应用服务器升级项目,采用Jetty7.1.5 替代 JBoss4.0.5GA