综合架构图:
综合架构详解:
详细总结:
公司第一大环境(生产环境):
1.整个web的访问过程其实就是数据流怎么处理的。
2.访问请求分为:动态 静态请求
3.代理:分为 反向代理(reporxy) 和 集群代理 一般公司将反向代理服务器放到最外边。
4.消息列队:同步处理改为异步处理
5.CDN服务器: 阿里云或者cdn处理静态数据流。一般使用cdn便宜(智能dns) CDN公司:蓝汛,七牛 按照G流量计算费用, 存放缓存数据,cdn上边有机房,放存储数据。静态数据靠外放置。 静态数据不能进到企业内部,因为访问的流量太多,所以都交给CDN,或者放到阿里云。
6.缓存数据: 将访问请求缓存到缓存层的时候可以用网卡捆绑bond(如以太网通道) 10000Gx4
7.LVS 四层代理,放到最外边,没有任何流量产生,但并发可以达到十几万。数据量上G nginx和LVS一起用
8.web服务器: apache/nginx/tengine tengine开发nginx的,淘宝在用。配置与nginx通用。兼容nginx源代码。
9.web页面存储服务器: NFS只会用来存放web的index的页面,做web页面的数据同步,不会用作存储服务器。 FastDFS 处理静态数据,图片等。一端要连接数据库,并且将处理后的图片数据吐到缓存层上。
10.消息列队: (1)消息列对用在哪 消息列队放在readis和集群之间的。 消息列队服务器最少三台,把同步数据变为异步数据,减少对后端服务器的压力。异步解耦。 docker半解耦状态,KVM解耦状态。
***** new=syn ESTABLISHED 同协议之间的,没有消息列队的时候。 RELATED 由上一个关联包回复的随机包。
(2)为什么消息列队和web服务器不用tcp协议? 因为直接使用tcp连接式不可以的,端口不够用 随机端口号大于1024,小于65535 小于1024,大于32768 消息列队和web服务器建立tcp,
(3)消息列队算法: rabbitMQ/zeroMQ/kafka
(4)什么是消息列队: 消息列队可以提高访问量, 首先访问进来的时候,先进会话层,建立会话,
(5)中间件层 中间件层是用来判断集群干嘛的一个层,是手机端还是页面端