没有合适的资源?快使用搜索试试~ 我知道了~
首页构建高并发高可用的电商平台架构
构建高并发高可用的电商平台架构
需积分: 22 22 下载量 142 浏览量
更新于2023-05-22
评论
收藏 530KB DOCX 举报
一 设计理念 空间换时间 1 多级缓存静态化 2 索引 并行与分布式计算 1 任务切分分而治之MR 2 多进程多线程并行执行MPP 多维度的可用 1 负载均衡容灾备份 2 读写分离 3 依赖关系 4 监控 伸缩 1 拆分 2 无状态 优化资源利用 1 系统容量有限 2 原子操作与并发控制 3 基于逻辑的不同采取不一样的策略 4 容错隔离 5 资源释放 二 静态架构蓝图 三 剖析架构 CDN 负载均衡反向代理 App接入 业务服务 基础服务中间件 1 通信组件 2 路由Router 3 HA 4 消息Message 5 CacheBuffer 6 搜索 7 日志收集 8 数据同步 9 数据分析 10 实时计算 11 实时推送 12 推荐引擎 数据存储 1 内存型数据库 2 关系型数据库 3 分布式数据库 管理与部署配置 监控统计
资源详情
资源评论
资源推荐
置顶构建高并发高可用的电商平台架构实践
标签: 架构电商高并发高可用实践
人阅读 评论 !"收藏 举报
本文章已收录于:
分类:
云计算(#)
作者同类文章 $
电商%开放平台(!)
作者同类文章 $
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录 &"'
一 设计理念
空间换时间
多级缓存静态化
索引
并行与分布式计算
任务切分分而治之 ()
多进程多线程并行执行 (**
多维度的可用
负载均衡容灾备份
读写分离
依赖关系
监控
伸缩
拆分
无状态
优化资源利用
系统容量有限
原子操作与并发控制
基于逻辑的不同采取不一样的策略
容错隔离
!资源释放
二 静态架构蓝图
三 剖析架构
+,-
负载均衡反向代理
. 接入
业务服务
基础服务中间件
通信组件
路由 )
/.
消息 (
!+01
#搜索
2日志收集
3数据同步
4数据分析
实时计算
实时推送
推荐引擎
数据存储
内存型数据库
关系型数据库
分布式数据库
管理与部署配置
监控统计
从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢
迎大家一起交流。
转载请声明出处:
作者:杨步涛
关注分布式架构、大数据、搜索、开源技术
55#!4#3
技术 0:
一、 设计理念
空间换时间
"多级缓存,静态化
客户端页面缓存( 中包含 67+8+,9: ,; 不
返回 ,客户端可以继续用 ,减少流量",6<)
反向代理缓存
应用端的缓存 99"
内存数据库
01、 机制(数据库,中间件等)
"索引
哈希、0 树、倒排、9
哈希索引适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。
0 树索引适合于查询为主导的场景,避免多次的 =>,提高查询的效率。
倒排索引实现单词到文档映射关系的最佳实现方式和最有效的索引结构,广泛用在搜索领
域。
09 是一种非常简洁快速的数据结构,他能同时使存储空间和速度最优化(而不必空间
换时间),适合于海量数据的的计算场景。
并行与分布式计算
"任务切分、分而治之 ()"
在大规模的数据中,数据存在一定的局部性的特征,利用局部性的原理将海量数据计算的
问题分而治之。
() 模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储
的数据处理 9",将处理后的数据进行合并 9"、排序 ?"后再分发 至
节点",避免了大量数据的传输,提高了处理效率。
"多进程、多线程并行执行 (**"
并行计算(*+9)是指同时使用多种计算资源解决计算问题的过程,是提高
计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器进程线
程来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处
理机来并行计算。
和 () 的区别在于,它是基于问题分解的,而不是基于数据分解。
多维度的可用
"负载均衡、容灾、备份
随着平台并发量的增大,需要扩容节点进行集群,利用负载均衡设备进行请求的分发;负
载均衡设备通常在提供负载均衡的同时,也提供失效检测功能;同时为了提高可用性,需
要有容灾备份,以防止节点宕机失效带来的不可用问题;备份有在线的和离线备份,可以
根据失效性要求的不同,进行选择不同的备份策略。
"读写分离
读写分离是对数据库来讲的,随着系统并发量的增大,提高数据访问可用性的一个重要手
段就是写数据和读数据进行分离;当然在读写分离的同时,需要关注数据的一致性问题;
对于一致性的问题,在分布式的系统 +.* 定量中,更多的关注于可用性。
"依赖关系
平台中各个模块之间的关系尽量是低耦合的,可以通过相关的消息组件进行交互,能异步
则异步,分清楚数据流转的主流程和副流程,主副是异步的,比如记录日志可以是异步操
作的,增加整个系统的可用性。
当然在异步处理中,为了确保数据得到接收或者处理,往往需要确认机制 :9、@"。
但是有些场景中,虽然请求已经得到处理,但是因其他原因 比如网络不稳定",确认消息
没有返回,那么这种情况下需要进行请求的重发,对请求的处理设计因重发因素需要考虑
幂等性。
"监控
监控也是提高整个平台可用性的一个重要手段,多平台进行多个维度的监控;模块在运行
时候是透明的,以达到运行期白盒化。
伸缩
"拆分
拆分包括对业务的拆分和对数据库的拆分。
系统的资源总是有限的,一段比较长的业务执行如果是一竿子执行的方式,在大量并发的
操作下,这种阻塞的方式,无法有效的及时释放资源给其他进程执行,这样系统的吞吐量
不高。
需要把业务进行逻辑的分段,采用异步非阻塞的方式,提高系统的吞吐量。
随着数据量和并发量的增加,读写分离不能满足系统并发性能的要求,需要对数据进行切
分,包括对数据进行分库和分表。这种分库分表的方式,需要增加对数据的路由逻辑支持。
"无状态
对于系统的伸缩性而言,模块最好是无状态的,通过增加节点就可以提高整个的吞吐量。
!优化资源利用
"系统容量有限
系统的容量是有限的,承受的并发量也是有限的,在架构设计时,一定需要考虑流量的控
制,防止因意外攻击或者瞬时并发量的冲击导致系统崩溃。在设计时增加流控的措施,可
考虑对请求进行排队,超出预期的范围,可以进行告警或者丢弃。
"原子操作与并发控制
对于共享资源的访问,为了防止冲突,需要进行并发的控制,同时有些交易需要有事务性
来保证交易的一致性,所以在交易系统的设计时,需考虑原子操作和并发控制。
保证并发控制一些常用高性能手段有,乐观锁、A、97、写时复制、+.B 等;多版本
的并发控制 (C++ 通常是保证一致性的重要手段,这个在数据库的设计中经常会用到。
"基于逻辑的不同,采取不一样的策略
平台中业务逻辑存在不同的类型,有计算复杂型的,有消耗 => 型的,同时就同一种类型而
言,不同的业务逻辑消耗的资源数量也是不一样的,这就需要针对不同的逻辑采取不同的
策略。
针对 => 型的,可以采取基于事件驱动的异步非阻塞的方式,单线程方式可以减少线程的切
换引起的开销,或者在多线程的情况下采取自旋 的方式,减少对线程的切换 比如
设计";对于计算型的,充分利用多线程进行操作。
同一类型的调用方式,不同的业务进行合适的资源分配,设置不同的计算节点数量或者线
程数量,对业务进行分流,优先执行优先级别高的业务。
"容错隔离
系统的有些业务模块在出现错误时,为了减少并发下对正常请求的处理的影响,有时候需
要考虑对这些异常状态的请求进行单独渠道的处理,甚至暂时自动禁止这些异常的业务模
块。
有些请求的失败可能是偶然的暂时的失败 比如网络不稳定",需要进行请求重试的考虑。
!"资源释放
系统的资源是有限的,在使用资源时,一定要在最后释放资源,无论是请求走的是正常路
径还是异常的路径,以便于资源的及时回收,供其他请求使用。
在设计通信的架构时,往往需要考虑超时的控制。
二、 静态架构蓝图
整个架构是分层的分布式的架构,纵向包括 +,-,负载均衡反向代理,D 应用,业务层,
基础服务层,数据存储层。水平方向包括对整个平台的配置管理部署和监控。
三、 剖析架构
+,-
+,- 系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时
间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取
得所需内容,解决 = 网络拥挤的状况,提高用户访问网站的响应速度。
对于大规模电子商务平台一般需要建 +,- 做网络加速,大型平台如淘宝、京东都采用自建
+,-,中小型的企业可以采用第三方 +,- 厂商合作,如蓝汛、网宿、快网等。
当然在选择 +,- 厂商时,需要考虑经营时间长短,是否有可扩充的带宽资源、灵活的流量
和带宽选择、稳定的节点、性价比。
负载均衡、反向代理
一个大型的平台包括很多个业务域,不同的业务域有不同的集群,可以用 ,-B 做域名解析
的分发或轮询,,-B 方式实现简单,但是因存在 而缺乏灵活性;一般基于商用的硬
件 E! 、 -B 或 者 开 源 的 软 负 载 ; 在 层 做 分 发 , 当 然 会 采 用 做 冗 余 比 如
;'@;"的考虑,采取主备方式。
层分发到业务集群上后,会经过 D 服务器如 7 或者 /.*7 在 2 层做负载均衡或者
反向代理分发到集群中的应用节点。
选择哪种负载,需要综合考虑各种因素(是否满足高并发高性能, B 保持如何解决,
负载均衡的算法如何,支持压缩,缓存的内存消耗);下面基于几种常用的负载均衡软件
做个介绍。
剩余24页未读,继续阅读
abcslh
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0