1、流量接入层:
1、四层负载均衡
四层的负载均衡就是基于IP+端口的负载均衡:在三层负载均衡的基础上,通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。
对应的负载均衡器称为四层交换机(L4 switch),主要分析IP层及TCP/UDP层,实现四层负载均衡。此种负载均衡器不理解应用协议(如HTTP/FTP/MySQL等等),常见例子有:LVS,F5。
2、七层负载均衡
七层的负载均衡就是基于虚拟的URL或主机IP的负载均衡:在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。举个例子,如果你的Web服务器分成两组,一组是中文语言的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。
对应的负载均衡器称为七层交换机(L7 switch),除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息,实现七层负载均衡。此种负载均衡器能理解应用协议,常见例子有: haproxy,MySQL Proxy。
前端一般采用四层负载均衡;
前端采用的web服务器一般有:
2、CDN缓存
内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。
阿里比较成熟的内容分发以及同步方案:能支持双11的体量,估计目前的地球上的流量估计很难冲垮吧
前端架构设计要点:
- vue/react/angular js/ajax
- 独立的前端部署集群(采用高性能的web服务器)
- web服务器的不同静态资源的隔离(ModuleLoad):不要讲js、css、html放到一起)apache + tomcat 实现静态页面动态页面分离_xcc_2269861428的博客-CSDN博客)
- 大规模静态资源推送(可以专门做一个服务器来做一些动态但是不频繁的数据的下发,最好使用长链接netty长链接的方式)
- web服务器(图片服务器)一定要打开gzip(web服务器开启gzip压缩_yaonianlong的专栏-CSDN博客)
- 客户端浏览器缓存
- html、img、css、js添加版本号(为js和css文件自动添加版本号 - 思如雨 - 博客园)
- cdn就近访问
- 动态页面静态化。