Web 系统架构一般组成

image


负载层技术
       负载分配层,是单指利用软件实现的计算机系统上的狭义负载均衡。它是根据业务形态设计一种架构方式,将来自外部客户端的业务请求分担到每一个可用的业务节点上 。
1.用户终端不只包括类似于PC 、 Android 手机 、平板电脑这样的终端设备 。还包括向服务节点发送请求的任何其他服务节点
2.不同的业务处理节点有两个层面的含义:

1)多次同一种类型的请求可以分配到同一个业务系统的不同节点上进行处理 ;

2)“用户终端”多次不同类型的请求,会分派到不同的业务系统 的不同节点上进行处理 。
负载方案:
• 独立 的 Nginx 负载或 HAProxy 方案
• LVS ( DR ) + Nginx 方案
• DNS 轮询+ LVS + Nginx 方案
• 智能 DNS ( DNS 路由) + LVS + Nginx 方案

Nginx只能处理 TCP/IP 协议之上的应用层 HTTP 协议,如果要处理 TCP/IP 协议,则要安装第三方的 TCP-Proxy-Module 模块。
直接在 TCP/IP 层负载的方案 , 是使用 HAProxy


业务层技术
在中大型业务系统中,这些业务是不可能独立存在的, 一般的设计要求都会涉及子系统间脱辑 : 即 X1系统除了知晓底层支撑系统的存在(例如用户权限系统),并不需要知道和它逻辑对等的 X2 系统的存在就可以工作。
相关技术:
• Thrift RPC 技术/dubbo RPC技术

• 保证消息可达性的消息队列技术


存储层技术
对 MySQL 聚集索引和非聚集索引理解不够透彻,导致常常出现 Table Scan拖慢整个顶层系统的性能;
不理解操作系统下的文件系统格式导致错选 EXT3 、 EXT4 、 XFS;
不清楚 Linux Page Cache 对文件读/写的工作原理,所以不能合理利用代码进行批量写

原文地址:https://www.cnblogs.com/gispathfinder/p/9024945.html