构建高并发高可用的电商平台架构实践(一)——设计理念, 站长资讯平台 - 深圳网站优化推广公司

构建高并发高可用的电商平台架构实践(一)——设计理念

2018-07-20    来源:编程学习网

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

空间换时间

多级缓存,静态化

客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)

反向代理缓存

应用端的缓存(memcache)

内存数据库

Buffer、cache机制(数据库,中间件等)

索引

哈希、B树、倒排、bitmap

哈希索引适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。

B树索引适合于查询为主导的场景,避免多次的IO,提高查询的效率。

倒排索引实现单词到文档映射关系的最佳实现方式和最有效的索引结构,广泛用在搜索领域。

Bitmap是一种非常简洁快速的数据结构,他能同时使存储空间和速度最优化(而不必空间换时间),适合于海量数据的的计算场景。

并行与分布式计算

任务切分、分而治之(MR)

在大规模的数据中,数据存在一定的局部性的特征,利用局部性的原理将海量数据计算的问题分而治之。

MR模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffle and sort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。

多进程、多线程并行执行(MPP)

并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器/进程/线程来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。

和MR的区别在于,它是基于问题分解的,而不是基于数据分解。

多维度的可用

负载均衡、容灾、备份

随着平台并发量的增大,需要扩容节点进行集群,利用负载均衡设备进行请求的分发;负载均衡设备通常在提供负载均衡的同时,也提供失效检测功能;同时为了提高可用性,需要有容灾备份,以防止节点宕机失效带来的不可用问题;备份有在线的和离线备份,可以根据失效性要求的不同,进行选择不同的备份策略。

读写分离

读写分离是对数据库来讲的,随着系统并发量的增大,提高数据访问可用性的一个重要手段就是写数据和读数据进行分离;当然在读写分离的同时,需要关注数据的一致性问题;对于一致性的问题,在分布式的系统CAP定量中,更多的关注于可用性。

依赖关系

平台中各个模块之间的关系尽量是低耦合的,可以通过相关的消息组件进行交互,能异步则异步,分清楚数据流转的主流程和副流程,主副是异步的,比如记录日志可以是异步操作的,增加整个系统的可用性。

当然在异步处理中,为了确保数据得到接收或者处理,往往需要确认机制(confirm、ack)。

但是有些场景中,虽然请求已经得到处理,但是因其他原因(比如网络不稳定),确认消息没有返回,那么这种情况下需要进行请求的重发,对请求的处理设计因重发因素需要考虑幂等性。

监控

监控也是提高整个平台可用性的一个重要手段,多平台进行多个维度的监控;模块在运行时候是透明的,以达到运行期白盒化。

伸缩

拆分

拆分包括对业务的拆分和对数据库的拆分。

系统的资源总是有限的,一段比较长的业务执行如果是一竿子执行的方式,在大量并发的操作下,这种阻塞的方式,无法有效的及时释放资源给其他进程执行,这样系统的吞吐量不高。

需要把业务进行逻辑的分段,采用异步非阻塞的方式,提高系统的吞吐量。

随着数据量和并发量的增加,读写分离不能满足系统并发性能的要求,需要对数据进行切分,包括对数据进行分库和分表。这种分库分表的方式,需要增加对数据的路由逻辑支持。

无状态

对于系统的伸缩性而言,模块最好是无状态的,通过增加节点就可以提高整个的吞吐量。

优化资源利用

系统容量有限

系统的容量是有限的,承受的并发量也是有限的,在架构设计时,一定需要考虑流量的控制,防止因意外攻击或者瞬时并发量的冲击导致系统崩溃。在设计时增加流控的措施,可考虑对请求进行排队,超出预期的范围,可以进行告警或者丢弃。

原子操作与并发控制

对于共享资源的访问,为了防止冲突,需要进行并发的控制,同时有些交易需要有事务性来保证交易的一致性,所以在交易系统的设计时,需考虑原子操作和并发控制。

保证并发控制一些常用高性能手段有,乐观锁、Latch、mutex、写时复制、CAS等;多版本的并发控制MVCC通常是保证一致性的重要手段,这个在数据库的设计中经常会用到。

基于逻辑的不同,采取不一样的策略

平台中业务逻辑存在不同的类型,有计算复杂型的,有消耗IO型的,同时就同一种类型而言,不同的业务逻辑消耗的资源数量也是不一样的,这就需要针对不同的逻辑采取不同的策略。

针对IO型的,可以采取基于事件驱动的异步非阻塞的方式,单线程方式可以减少线程的切换引起的开销,或者在多线程的情况下采取自旋spin的方式,减少对线程的切换(比如oracle latch设计);对于计算型的,充分利用多线程进行操作。

同一类型的调用方式,不同的业务进行合适的资源分配,设置不同的计算节点数量或者线程数量,对业务进行分流,优先执行优先级别高的业务。

容错隔离

系统的有些业务模块在出现错误时,为了减少并发下对正常请求的处理的影响,有时候需要考虑对这些异常状态的请求进行单独渠道的处理,甚至暂时自动禁止这些异常的业务模块。

有些请求的失败可能是偶然的暂时的失败(比如网络不稳定),需要进行请求重试的考虑。

资源释放

系统的资源是有限的,在使用资源时,一定要在最后释放资源,无论是请求走的是正常路径还是异常的路径,以便于资源的及时回收,供其他请求使用。

在设计通信的架构时,往往需要考虑超时的控制。

以下是架构蓝图:

电商平台静态架构蓝图

整个架构是分层的分布式的架构,纵向包括CDN,负载均衡/反向代理,web应用,业务层,基础服务层,数据存储层。水平方向包括对整个平台的配置管理部署和监控。

标签: 电商 电商平台 数据库 搜索 通信 网络

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:深入探讨Java中的异常与错误处理

下一篇:每个Java程序员需要了解的8个Java开发工具

相关内容推荐

北京公交网站制作奶茶海城手机网站制作合肥制作手机公司网站布吉定制型网站制作服务商网站的生命超链接制作教案二维码网站制作手机版唐县网站制作淄博网站制作价格低休闲网站制作影视音乐制作网站免费凤鸣轩小说网站制作楼梯配色网站制作北京电视台网站制作美食兰州制作网站怎么实现如何自己免费制作网站个人网站制作费多少长沙制作网站设计较好的公司政府网站制作公司排名绍兴网站制作有哪些asp花店网站制作东莞网站制作ppt教程dw网站怎么制作大连网站制作收费明细表佛山新网站制作市场怀柔网站制作价格网站版式设计网站制作黑河大学购物网站怎么制作设计比赛网站flash网站的制作流程商城网站制作哪些好杨红樱网站制作起泡凡科网站制作模板成华网站设计制作SE网站视频制作延吉金泉网网站制作看戏网站制作表格html与网站制作招远智能响应式网站制作湖南微信网站制作平台设计师常用网站教你学会网站制作阳谷网站制作开通制作专题提高网站流量网站制作 常熟 哪里好制作在一起的网站源码dw制作网站的导航功能常州开发网站制作动态网站设计手机网站制作怎样收费隐藏图标网站制作人间正道电影网站制作红龙电影网站制作临海如何在网上自己制作网站长沙县网站制作哪家专业制作网站之后如何解析兴化展示型网站制作需要多少钱可以用什么来制作网站厦门vr网站制作哪家靠谱河南网站制作奶茶龙岩网站设计朔州服装网站开发制作网站页面设计乐昌家电维修网站制作德兴网站制作首都图书馆网站制作头像联想集团网站制作沙头外贸独立网站制作哪家公司好坂田网站制作公司好吗教程php网站制作论文网站制作美食网站电影票制作班级静态网站制作模板潍坊网站建设制作设计公司湖口网站制作公输翻译网站制作视频制作必备网站av制作出来放在网站上区块链制作网站网站片头在线制作网站制作相信25金手指靠谱如何制作有吸引力的网站大源网站制作公司黎平网站制作公司快速制作小说网站制作wallet网站制作网站需要哪些网站虎门五金网站制作服务企业门户网站制作周期南昌哪里有制作网站什么网站可以制作电商制作自己的影视网站泉州哪里有制作网站的石家庄个人网站制作十堰网站制作冰淇淋墙布配色网站制作ps制作简单网站首页12360网站制作冰淇淋延吉市四维网站制作音频制作类网站知乎公司网站制作费放什么科目家校通网站制作表格网站制作需要 的 工作岗制作科技公司静态网站美图gif在线制作网站如何制作网站登录注册页情感网站制作小玩具家具布艺手工制作网站点歌网站制作雪糕制作手机网站建设公司湖南省网站制作h5宣传页免费制作的网站邹平网站制作公司电话浦东网站制作有哪些遵化网站制作案例网站的制作软件制作有关汉服网站的模板解梦网站制作贴纸厦门制作网站建设设计素材 网站宜春商务网站制作报价表动漫产品网站制作哪个好乔布斯电影网站制作软件网站这么制作水墨头像制作网站在线生成器广交会网站制作手工上海最专业的网站设计制作网站设计技巧网站专业设计不用编程制作网站大连网站制作头像banner 在线制作网站中华医学会网站制作奶茶童趣网站制作雪糕武汉网站设计设计创意网站网站设计说明书制作一个棋牌游戏网站要多钱河南微信小程序制作网站网站设计招聘任务表制作网站免费的web制作购物网站制作海报的免费网站九江专业网站制作制作免费看电影的网站台湾购物网站制作佛山制作网站咨询电话如何制作国际网站大同制作网站开发公司web前端制作静态网站文昌微网站制作免费图片在线制作生成网站外贸网站建设制作教程荔湾区网站制作公司西安企业网站制作价格夏耕简历制作网站程老师网站制作选择邯郸网站制作企业网站制作需要什么材料坑梓网站制作基本流程求职网站视频制作旅行网站制作表格企业动态模板网站制作制作网站付费吗象山微信推文制作网站有哪些遂宁平台网站制作价格圣诞节网站在线制作济南移动网站制作全智贤电影网站制作好的宣传片制作网站新余网站制作怎么选山西网站建设网站制作游戏网站制作书签厦门 网站的制作方法呼兰网站制作公司多少钱视频人物音效网站制作文献检索网站视频制作建网站设计红原网站制作建材网站制作书签供热设施网站制作方案青岛制作网站企蕉岭高端网站制作制作网站都需要多长时间西安专业网站制作优势南城互联网网站制作比较好的龙岩网站制作壁纸的app孟津响应式网站制作南充标书制作网站设计自学网站惠州专门网站制作厦航网站制作视频制作app网站推荐徐州网站建设网站制作住建委网站制作汕尾网站制作公司安仁网站设计制作广安制作公司网站桐城网站制作哪家强象山网站视频制作软件有哪些

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统