一.简单了解互联网目前常见的系统架构
一台普通服务器的处理能力是有限的。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。
负载均衡(Load Balance)——有两台或者以上的服务器或者站点提供服务,服务将来自客户端的请求,靠某种算法,去尽量平分请求到集群的机器中,从而避免一台服务器因为负载太高而出现故障,而即使其中某个机器出现故障,负载均衡会自动规避选择,使得用户也能正常访问服务。
lvs工作在网络层, 基于四层交换技术的负载均衡,(ip地址+端口号来决定怎样转发流量),主要做负载均衡
lvs抗负载能力最强,因为仅作分发不处理请求,相当于只作转发不做进一步处理直接在内核中完成,对系统资源消耗低
lvs涉及到的算法:轮训,加权轮训,ip hash
nginx工作在网络的应用层,基于七层交换技术的负载均衡也称内容交换(在四层的基础上,再考虑应用层的特征,比如七层的url、浏览器类别、语言来决定是否要进行负载均衡;),主要做反向代理;
四层负载均衡和七层负载均衡的最大差别是:四层负载均衡只能针对IP地址和端口上的数据做统一的分发,而七层负载均衡能根据消息的内容做更加详细的有针对性的负载均衡。我们通常使用LVS等技术实现基于Socket的四层负载均衡,使用Nginx等技术实现基于内容分发的七层负载均衡,比如将以“/user/***”开头的URL请求负载到单点登录服务器,而将以“/business/***”开头的URL请求负载到具体的业务服务器,
ps:
正向代理:访问外部的服务器
反向代理:在机房内部访问系统内部的服务器,提供资源