大型网站架构系列:电商网站架构案例(2)

news/2024/5/20 2:32:21/文章来源:https://blog.csdn.net/yazhouren/article/details/50782276
origin: http://www.cnblogs.com/itfly8/p/5006200.html

电网网站架构案例系列的第二篇文章。主要讲解网站架构分析,网站架构优化,业务拆分,应用集群架构,多级缓存,分布式Session。

五、网站架构分析

根据以上预估,有几个问题:

  • 需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器。并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费。
  • 所有的应用部署在同一台服务器,应用之间耦合严重。需要进行垂直切分和水平切分。
  • 大量应用存在冗余代码
  • 服务器SESSION同步耗费大量内存和网络带宽
  • 数据需要频繁访问数据库,数据库访问压力巨大。

 

大型网站一般需要做以下架构优化(优化是架构设计时,就要考虑的,一般从架构/代码级别解决,调优主要是简单参数的调整,比如JVM调优;如果调优涉及大量代码改造,就不是调优了,属于重构):

  • 业务拆分
  • 应用集群部署(分布式部署,集群部署和负载均衡)
  • 多级缓存
  • 单点登录(分布式Session)
  • 数据库集群(读写分离,分库分表)
  • 服务化
  • 消息队列
  • 其他技术

六、网站架构优化

6.1业务拆分

根据业务属性进行垂直切分,划分为产品子系统,购物子系统,支付子系统,评论子系统,客服子系统,接口子系统(对接如进销存,短信等外部系统)。

根据业务子系统进行等级定义,可分为核心系统和非核心系统。核心系统:产品子系统,购物子系统,支付子系统;非核心:评论子系统,客服子系统,接口子系统。

业务拆分作用:提升为子系统可由专门的团队和部门负责,专业的人做专业的事,解决模块之间耦合以及扩展性问题;每个子系统单独部署,避免集中部署导致一个应用挂了,全部应用不可用的问题。

等级定义作用:用于流量突发时,对关键应用进行保护,实现优雅降级;保护关键应用不受到影响。

拆分后的架构图:

 

参考部署方案2

(1)       如上图每个应用单独部署

(2)       核心系统和非核心系统组合部署

 

6.2应用集群部署(分布式,集群,负载均衡)

         分布式部署:将业务拆分后的应用单独部署,应用直接通过RPC进行远程通信;

         集群部署:电商网站的高可用要求,每个应用至少部署两台服务器进行集群部署;

         负载均衡:是高可用系统必须的,一般应用通过负载均衡实现高可用,分布式服务通过内置的负载均衡实现高可用,关系型数据库通过主备方式实现高可用。

集群部署后架构图:

 

6.3 多级缓存

         缓存按照存放的位置一般可分为两类本地缓存和分布式缓存。本案例采用二级缓存的方式,进行缓存的设计。一级缓存为本地缓存,二级缓存为分布式缓存。(还有页面缓存,片段缓存等,那是更细粒度的划分)

一级缓存,缓存数据字典,和常用热点数据等基本不可变/有规则变化的信息,二级缓存缓存需要的所有缓存。当一级缓存过期或不可用时,访问二级缓存的数据。如果二级缓存也没有,则访问数据库。

缓存的比例,一般1:4,即可考虑使用缓存。(理论上是1:2即可)。

 

         根据业务特性可使用以下缓存过期策略:

(1)       缓存自动过期;

(2)       缓存触发过期;

6.4单点登录(分布式Session)

系统分割为多个子系统,独立部署后,不可避免的会遇到会话管理的问题。一般可采用Session同步,Cookies,分布式Session方式。电商网站一般采用分布式Session实现。

         再进一步可以根据分布式Session,建立完善的单点登录或账户管理系统。

 

         流程说明

(1)       用户第一次登录时,将会话信息(用户Id和用户信息),比如以用户Id为Key,写入分布式Session;

(2)       用户再次登录时,获取分布式Session,是否有会话信息,如果没有则调到登录页;

(3)       一般采用Cache中间件实现,建议使用Redis,因此它有持久化功能,方便分布式Session宕机后,可以从持久化存储中加载会话信息;

(4)       存入会话时,可以设置会话保持的时间,比如15分钟,超过后自动超时;

结合Cache中间件,实现的分布式Session,可以很好的模拟Session会话。

分享是快乐的,也是个人成长的过程。文章一般是自己的学习总结,工作经验,不足之处在所难免,请大家指正,共同进步。建立了一个以架构为中心的KK群466097527 ,欢迎大家加入。专注大型分布式网站架构,大数据,架构模式,设计模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_793651.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站架构系列:电商网站架构案例(3)

origin: http://www.cnblogs.com/itfly8/p/5009005.html本文章是电商网站架构案例的第三篇,主要介绍数据库集群,读写分离,分库分表,服务化,消息队列的使用,以及本电商案例的架构总结。 6.5数据库集群&#…

大型分布式网站架构技术总结

origin: http://www.cnblogs.com/itfly8/p/4967966.html本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分…

安装php cms 系统教程,如何安装PHPCMS网站管理系统

帝国CMS技术互助群:540946827 一帮大神带你装逼带你飞!还有漂亮的妹纸陪你玩哦!(一)安装前的预备Phpcms 具备跨平台特性,可以运行于 Linux/FreeBSD/Unix 及微软 Windows 2000/2003 等各种操作系统环境下。我们已在软件中 针对上述…

大型网站架构演变和知识体系

2019独角兽企业重金招聘Python工程师标准>>> 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演…

linux日志服务源码,Linux系统下nginx+php实现清理服务器网站日志

本篇文章主要讲述的是在Linux系统下用nginx和php实现清理服务器网站日志,具有一定参考价值,感兴趣的朋友可以了解一下,希望对你能有所帮助。1.清空nginx站点日志的内容(如果删除日志文件,只有重启服务器才能重新生成日志文件进行记…

玛曲seo关键词互点软件_请看!张家港seo关键词优化价格,启销软件

广东无忧云网络科技有限公司为您详细解读XzMLCf张家港seo关键词优化价格的相关知识与详情,跟着时间的推移,页面排名由用户行为、用户交互、用户保举等因素决议,而新页面排名则由相关关键字密度、文章本创性等因素决议。那种影响会渐渐削弱&am…

layui的tab加入其他页面_网站建设费用_网站制作如何让页面更具特色

对于一个页面,毫无特色,是没有办法吸引用户的目光,只有有特色的页面才能吸引更多的用户,才能留住用户,所以页面设计的好坏会直接影响网站用户的体验,在这个网络十分发达的年代,用户没有太多的时…

python爬取电商数据_吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据...

用python爬取动态网页时,普通的requests,urllib2无法实现。例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests、urllib2无法抓取这些动态加载的内容,此时…

多平台的网站实现单点登录系统(SSO)的开发思路 让你的会员中心更加统一(参考资料)...

单点登录并不是一个新鲜的玩意儿,比较官方的解释是企业业务整合的解决方案之一,通俗来讲SSO就是一个通用的用户中心,国内比较流行的UCenter就是一套单点登录解决方案。而近期以CSDN明文存储用户密码并泄露用户信息开始的各大网站争先恐后的泄…

报名系统网页导出html,教资报名系统提示网站兼容性怎么办 ie浏览器兼容性操作流程...

教师资格证报名2021年入口已经于1月14日开通,3月13日举行笔试,相信不少考生在报名过程中,遇到兼容性站点添加的问题,报名的浏览器不是IE系列,兼容性站点如何添加呢?为帮助各位考生报考,小编来帮助大家解决…

国外服务器 百度云,百度云加速如何配置网站海外加速

一、纯静态网站加速所谓纯静态网站就是网页全部由HTML纯静态页生成的网页,没有会员注册登陆、在线支付等需要调用数据库的功能。这类网页想要加速很简单,只需要把网页全部缓存至百度云加速节点即可。操作方法如下:1.进入报表下拉的-特定页面规…

java和seo哪个好_seo和java哪个更好

一个seo行业站点,科学的内容制作应该与seo相关,且内容本身是有人搜索的。seo和java哪个更好是有人搜索的语句,且与seo是强相关的,对于站增网来讲,这样的内容再适合不过了。任何一门技术,如果精通&#xff0…

nginx 判断手机端跳转_前后端分离情况下如何做SEO优化?

大家好,我是吉礻羊!前后端分离情况下如何做SEO优化?优化针对这个问题分2个点:1,前后端分离的架构,无法提供搜索引擎可收录的页面,需要搜索引擎蜘蛛拥有执行javascript能力才行,可现实…

网页设计 html鼠标悬停,20个酷炫的鼠标悬停效果的网站设计

原标题:20个酷炫的鼠标悬停效果的网站设计出处:设计之家链接:http://www.sj33.cn/digital/wysj/201706/47570.htmlPixels by Tomer Lernerhttp://tomerlerner.com/Haushttps://www.madeinhaus.com/Canvahttps://www.canva.com/Mainworkshttp:…

Centos 安装GIT 同步发布到网站

之前一直都是用SVN 换了新公司后内部用的是GIT 于是研究一番 发现GIT确实就SVN快很多 于是试着搭建一下 第一步 安装GIT 其实在centos上安装很简单 直接用yum明白 yum install git看下是否安装成功 git --version如果出现版本号证明安装成功 第二部 创建GIT仓库 并发布到网站目…

2016年3月国内网站流量统计5强:搜狗、凤凰网上榜

IDC评述网(idcps.com)03月28日报道:根据中国互联网协会-中国网站排名公布的最新数据显示,截至2016年3月24日,国内网站独立访问量排名前五的是:百度、腾讯网、360搜索、搜狗与凤凰网,如下图。如上…

一个莆田系医院网站提醒的浏览器插件

为什么80%的码农都做不了架构师?>>> 支持一下。源码如下: http://git.oschina.net/wzwahl36/PTHospital.chrome 另外,如果你知道更多莆田医院,可以在源码网站上帮助完善莆田医院信息 转载于:https://my.oschina.ne…

网站安装打包 新建网站[四][文件解压] 上

在新建网站之前,就是要把打包好的项目拷贝一份到IIS指定的路径上,同时,还要为个别目录设置相应的访问权限! 于是就产生了两件事: 1。拷贝-》[这里我是采用RAR打包,然后解压] 2。设置权限 如果是用拷贝方式,…

各种资源网站收集

1.Linux资源 Linux 2.backbonerequirejsbootstrap学习 backbonerequirejsbootstrap backbonerequire.js backbone 3.bootstrap样式 bootstrap 4.angularjs各版本下载AngularJS官网本身采用AngularJS库构建,页面中的AngularJS库通过Google的CDN(内容分发网…

大型网站架构系列:负载均衡详解

面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分…