图解大型网站
前言:
要想说明大型电商网站,需先将小型电商网站说起,然后阐明大型电商网站架构的重要性。
小型电商网站架构
对于小网站,页面很少,很实用,非常简单,模板引擎(velocity、freemaker),页面数据管理的cms系统,内容管理系统
点击一个按钮,做成系统自动化,重新全量渲染。几百个页面,推送到nginx服务器上面,直接走html
缺陷:页面太多,比如上亿个页面,一个模板修改好了,重新渲染一亿的数据,不靠谱,这时大型网站架构的重要性就体现出来了
大型电商网站架构
大型电商网站整体架构如上图,接下来讲解一下该图的原理:
本图中有三个服务,分别是商品服务、店铺服务、品牌服务,这三个服务对接数据库层,当数据改变时,则推送一条消息到MQ,缓存数据生成服务监控MQ,若监控到数据改变,则向数据更改的服务加载数据并缓存到ehcache,同时将数据推送到redis进行缓存起来。当一个客户请求过来时,首先先到nginx的本地缓存中查看是否有缓存数据,如果有则返回给前端,如果没有则向redis查找,如果redis有,则缓存到nginx并返回数据给前端。同样,如果redis也没有,那么向缓存数据生成服务的ehcache获取,如果同样没有数据,那么最后向商品服务、店铺服务、品牌服务发送请求,由这三个服务向数据库获取再返回去。
这个就是大型电商网站的整体思路。