java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

大型电商网站系统架构演变过程

  1. 小的时候,只有一台服务器,把程序,文件,数据库丢在一起

2. 流量变大了,买了三台服务器,把程序,文件,数据库分开

3. 为了加速,开始加入缓存服务器组,redis,memcached 等

4. 流量进一步增加,开始用负载均衡,把应用服务器,改为一组,使用LVS,NGINX减少单机应用压力

5. 数据库进行读写分离,主库负责写,多台从库负责

6. 当流量更大的时候,负载均衡也扛不住了,CDN分发。让DNS根据客户IP的不同,在全国各地不同的地方访问不同的服务器组

7. 网站越来越大,文件也越来越多,上大型文件系统,HDFS为代表

8. 数据库用NOSQL,搜索为了进一步加速,采用搜索引擎

9. 将不同的项目拆分为不同的服务,比如百度的图片和百度知道,项目之间用消息队列服务

10. 加入分布式调度服务器,将系统的功能,进行拆分。比如商品服务,支付服务

学习资料 https://www.cnblogs.com/huxuanjing/p/12585109.html

https://mp.weixin.qq.com/s?__biz=MzkwOTIxNDQ3OA==&mid=2247533559&idx=1&sn=06ad183cfd7c413dc1d0b2a43a18fc16&source=41#wechat_redirect

1.大型网站分为三类

  • 大型门户- 以静态页面为主,大量采用CDN,静态化进行优化
  • SNS - 动态为主 大量采用NOSQL,分布式缓存,高性能通信框架优化
  • 电商 兼备以上两种

2.需求特点

  • 内容多,商品多,用户多,要求海量存储,能抗并发
  • 系统规模大,关系商品管理,购物管理,支付管理,评论管理,客服管理,广告管理等
  • 有很多突发流量情况发生,比如秒杀

3.流量测算

1000万用户,UV大约200万,20%原则

每天30次

PV一天6000万

20%的时间,有80%的访问量 4.8小时访问了4800万

一分钟并发4.8*60=288分钟,每分钟为16.7万,、

每秒为2780次

假设高峰为平时3倍大约每秒9000次。

按一台tomcat 每秒300次,那么要10台,高峰期需要30台

4.预估的浪费问题

30台机器,只有高峰采用,所以有很大的浪费,要合理部署,对应用进行切分。

应用切分

  • 核心-产品系统
  • 核心-购物系统
  • 核心-支付系统
  • 评论系统
  • 广告系统
  • 客服系统
  • 基础-会员系统

部署模式

  • 分布式部署
  • 集群部署
  • 负载均衡部署

数据库和缓存

  • 数据读写分离
  • 使用redis
  • 使用MQ
  • 使用本地缓存

其他技术

  • 单点登录
  • 反向代理
  • CDN
  • 分布式文件存储系统
  • 检索系统

https://xie.infoq.cn/article/597c7d0ff10d35c81314f0c9b 分五层比较详细

1. 网页缓存层 CDN

2. 负载均衡层

  • 第一层:LVS 或者HAproxy 实现流量分组(内网和外网隔离、爬虫和非爬虫流量隔离)、内容缓存、请求头过滤、故障切换(机房故障切换到其他机房)、限流、防火墙等一些通用型功能,无状态设计,可以水平扩容
  • 第二层:Nginx 可以实现业务逻辑,或者反向代理到如 Tomcat,这一层的 Nginx 与业务相关联,可以实现业务的一些通用逻辑。

3.Web服务器层

优先选用nginx,Java采用SpringBoot

4.文件服务器层

图形文件要做独立的服务器部署,JS等文件利用CDN缓存

5.数据库层

底层是MYSQL,NOSQL,上层加缓存Redis, 消息队列


This entry was posted in JAVA and tagged . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/big-e-buy-website/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply