投影片~~~~~~
秒杀系统架构
流量分析:
系统可能用到哪些服务
秒杀系统架构:
1、CDN缓存
2、智能DNS解析:Nginx
3、逻辑集群:jetty
4、分库分表:Mycat
5、统计分析:生成报表
认识到各个角色承担的主要职责
【参与的角色】
数据库管理员(Database Administrator,简称DBA)
【典型的部署架构】
Nginx做负载均衡
分库分表 在秒杀系统中,一般通过关键的秒杀商品id取模进行分库分表,以512为一张表,1024为一张表 分库分表一般采用开源架构,如alibaba tddl
统计分析 一般使用hadoop等架构进行分析
补充:
一部分流量已经被cdn缓存锁拦截 不过秒杀的操作,秒杀的地址获取这样的请求不方便放入cdn中,所以访问到我们的服务器 我们的服务器会通过我们的dns查找到我们的地址 一般找到的是nginx地址,nginx一般部署到不同的机房,比如电信,移动,联通 这样的话智能的dns会根据用户的请求ip地址来智能的dns解析来请求最近的Nginx服务器 nginx还会给我们的服务器做负载均衡
分库分表:阿里巴巴TDDL
统计分析: EL
CDN:Content Delivery Network,即内容分发网络。放置一些静态化资源,或者可以将动态数据分离,比如秒杀详情页,做成HTML放在cdn上,动态数据可以通过ajax请求后台获取。一些js依赖直接用公网的CDN,自己开发的一些页面也做静态化处理推送到CDN。用户在CDN获取到的数据不需要再访问我们的服务器,动静态分离可以降低服务器请求量。
WebServer一般不直接对外访问,之前都会放置Nginx,Nginx是一个集群化的,部署在多个服务器上,用来做我们的Http服务器,响应客户请求。同时他还会为后端的Tomcat,Jetty这些servlet容器来做反向代理,以达到负载均衡的效果。
Redis:做服务器端的缓存,利用Redis提供的API来达到热点数据的快速存取的过程。加速后台获取数据,减少数据库的请求量。
MySQL:借助MySQL的事务来达到秒杀的数据的一致性和完整性。
11111
典型的部署架构
212331
该系统会用到的服务
系统部署架构
系统架构部署
大型系统架构
CDN:Content Delivery Network,即内容分发网络
WebServer一般不直接对外访问,之前都会放置Nginx,Nginx是一个集群化的,部署在多个服务器上,用来做我们的Http服务器。同时他还会把后端的Tomcat,Jetty来做反向代理。
Redis:做服务器端的缓存,利用Redis提供的API来达到热点数据的快速存取的过程。
MySql:借助MySQL事务来达到秒杀事务的一致性和完整性
js 模块化开发
动静态资源分离 优化 静态资源放入CDN 动态资源:1)查询可以放入redis 2)修改数据库可以考虑将简单逻辑做成存储过程优化
系统部署架构
分库分表:阿里巴巴TDDL
统计分析: EL
CDN:Content Delivery Network,即内容分发网络
WebServer一般不直接对外访问,之前都会放置Nginx,Nginx是一个集群化的,部署在多个服务器上,用来做我们的Http服务器。同时他还会把后端的Tomcat,Jetty来做反向代理。
Redis:做服务器端的缓存,利用Redis提供的API来达到热点数据的快速存取的过程。
MySql:借助MySQL事务来达到秒杀事务的一致性和完整性
架构123
分库分表工具例如阿里巴巴的TDDL工具
系统部署架构
系统部署架构
系统部署架构
系统用到的服务