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

news/2024/5/20 5:35:20/文章来源:https://blog.csdn.net/weixin_30402085/article/details/98672972
大型网站架构系列:电商网站架构案例(2)
原文:大型网站架构系列:电商网站架构案例(2)

电网网站架构案例系列的第二篇文章。主要讲解网站架构分析,网站架构优化,业务拆分,应用集群架构,多级缓存,分布式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会话。

posted on 2019-04-03 13:27 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10648238.html

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

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

相关文章

关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(二)

(二)、新浪微博登录 1. 首先在新浪微博开放平台注册成为开发者。【http://open.weibo.com/connect】 具体自己填写一些相关信息就OK! 2. 注册成功之后,点击【微连接】,之后在点击【创建应用】 3. 然后选择网页应用 4. …

wordpress 建站总结

搭完之后觉得还是很简单的,主要是各种软件集成的很好了,不过有些地方需要注意下,这里纪录下搭建过程(windows环境)。 首先下载wordpress,https://wordpress.org/ 解压wordpress,解压文件里的r…

大数据综合案例-网站日志分析

第一部分:项目介绍 一、项目背景与数据情况 1.1 项目来源 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖、回帖,如图1所示: 图1 项目来源网站-技术学习论坛 本次实践…

数据分析常用网站 持续更新!!!

数据分析常用网站 欢迎大家补充,直接在下面留言就可以了。不限于R,excel,sql,欢迎Python学者和统计学学者。 日后会陆续贴出一些有大数据分析项目的比赛,欢迎组队 大数据比赛 赛事公告 优易数据杯- 中国气象数据分析R语…

最新的VS学习视频网站:ASP.NET, MVC, SQL , LINQ, WebService,等 http://csharp-video-tutorials.blogspot.jp/...

最近开发项目经常会碰到一些开发问题,基于Windows开发人员,强烈推荐。 http://csharp-video-tutorials.blogspot.jp/ by the way, another two website is wanderful 1.http://www.codeproject.com/ 2.http://stackoverflow.com/ 转载于:https://www.cnb…

个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范...

昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷……其实攻击者进攻的手法很简单,没啥技术含量。只能感叹自己之前竟然完全没防范。 这是数据库里留下的一些记录。最后那人弄了一个无限循环弹出框的脚本,估计这个脚本之后他再想输入也没法了。…

Hybrid容器设计之第三方网站

平台化容器API释放 接上文:(阅读本文前,建议阅读前三篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 之前设计Hybrid整块交互的时候,受众都是自…

.net core 利用中间件处理常见的网站功能 包括 session、routers、重定向、重写和文件下载...

在.net core中所有的请求都会被请求中间件所处理,所以我们可以通过在中间件里边添加对应的功能然后在服务中添加注入来实现对应的功能 文件位置:Startup.cs>Configure方法,请求中间件的代码位置 1.什么是中间件: 中间件是组装…

json 格式化工具/网站

一、在线工具: 优点,快速,识别错误,标识错误位置 缺点:对于编辑不友好,没有快捷键可用 https://www.jsondecode.cc/ http://www.vmfor.com/json.html# 二、离线工具 1、HIjson 优点:功能丰…

作为一名程序员必备的一些网站,看完记得收藏说不定以后用得上!

一个好的网站,就是程序员学编程的基地。虽说新手程序员也许知道一些在线编程网站,但是质量上乘的编程网站又知道几个呢? 下面就来给大家推荐几个质量上乘的编程网站,排名不分先后。 还有什么稀奇的网站请写在评论区,博主看到了就…

linux网站发布操作流程

Linux 添加用户命令: useradd bm -g webTemp http://www.runoob.com/linux/linux-vim.html Linux关于网站发布操作流程 虚拟机地下:192.168.1.175 1.网站发布打包2.去服务器把站点备份下载3.停止 站点4.删除 站点文件5.上传站点文件 并解压6.启动 站点. 一般情况下.…

第四百零四节,python网站第三方登录,social-auth-app-django模块,

第四百零四节,python网站第三方登录,social-auth-app-django模块, social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块 目前流行的第三方登录都采用了OAuth2协议 安装 pip install -i https://pypi.douban.com/simple so…

http://www.open-lib.com 一个神奇的网站

向往前端转的同学们 注意了 LZ发现了一个前端JS框架很多的地方 这个就是 http://www.open-lib.com 不多说 上案例 HTML5视频播放框架 html5media[视频插件] html5media是一个JavaScript音频/视频播放器能够让每一个浏览器都能够播放在HTML5多媒体标签中定义的多媒体文件。OI…

免费发布统计调查网站

免费发布统计调查网站 需求: 需要一个调查网站,这个网站与公司主线业务没有直接关联,其主要作用是调查网上客户对产品的需求如何?分析: 因为是一个与公司主线业务关联不大的网站,而且其功能大多与以往调查类网站一样,复杂的操作在于其统计,不想用有限的人力投入到相似问题的开…

大型网站架构系列——分布式消息队列

转载自:https://www.cnblogs.com/itfly8/p/5155983.html 消息队列概述消息队列使用场景1、消息队列概述: 消息队列中间件是分布式系统中重要的组件,主要解决 应用耦合,异步消息,流量削锋 等问题。实现高性能&#xff…

沿用Python+Flask+Mysql的web建设技术开发网站

1 系统概要说明 1.1 开发目的 闲暇时光想看看电影?我要看些什么好呢?百度推荐出来的烂片也不在其数,如果有一个真实反映影片的平台该多好,这就是淘智宝的产生,为电影连续剧爱好人群提供一个可以自由言论的平…

推荐10个程序员常去的网站

偶尔有收到一些读者留言和询问:大佬,你知道有哪些适合初级学者的技术论坛或网站吗? 我摸了摸头,若有所思的答道:这个还真有,不知道你喜欢什么风格和适合哪些?.... 我没有见过凌晨4点的洛杉矶&…

Javascript 防扒站,防止镜像网站

自己没日没夜敲出来的站,稍微漂亮一点,被人看上了就难逃一扒,扒站是难免的,但不能让他轻轻松松就扒了; 前些天有个朋友做的官网被某不法网站镜像,严重影响到 SEO,当时的解决方法是通过屏蔽目标 …

服务器网页文件在哪里找,网站web服务器查木马一看就会

原标题:网站web服务器查木马一看就会今天周末到了检查WEB服务器安全状况的时间了。按照惯例子0点开始查。开始之前大家要准备好工具软件,当然如果很有经验的话也可以不用工具,不过效率只能是蚂蚁爬了。按照本文的方式,一般的WEB服…

Bootstrap4中button和dropdown不可见(提交到github个人网站)

项目场景: 一个作业题,要求自行实现一个搜索前端。 问题描述: 如上,实现之后本应由两个button,但是在第一次提交到github个人网站时不能正常显示。尽管功能正常,在预期的位置处可以又正常的功能运作。 …