一、什么是负载平衡
负载平衡 成立在现有网络布局之上,它提供了一种便宜有效透明的要领扩展网络设备和服务器的带宽、增加吞吐量、增强网络数据处理惩罚本领、提高网络的机动性和可用性。负载平衡,英文名称为 Load Balance,其意思就是分摊到多个操纵单位长举办执行,譬喻 Web 处事器、FTP 处事器、企业要害应用处事器和其它要害任务处事器等,从而配合完成事情任务。
二、负载平衡计策 1、 轮询(默认)
每个请求定时间顺序逐一分派到差异的后端处事器,假如后端处事器 down掉,能自动剔除。
2、指定权重指定轮询几率,weight 和会见比率成正比,用于后端处事器机能不均的环境。
3、IP 绑定 ip_hash每个请求按会见 ip 的 hash 功效分派,这样每个访客牢靠会见一个后端处事器,可以办理 session 的问题。
4、fair(第三方)按后端处事器的响应时间来分派请求,响应时间短的优先分派。
5、url_hash(第三方)按会见 url 的 hash 功效来分派请求,使每个 url 定向到同一个后端处事器,后端处事器为缓存时较量有效。
三、轮询(默认) 1、模仿集群配置两个Tomcat同时会见一个servlet
import Javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/NginxServlet")
public class NginxServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Nginx负载平衡!");
System.out.println("当前会见端口:"+request.getServerPort());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
配置两个Tomcat同时会见一个servlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/NginxServlet")
public class NginxServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Nginx负载平衡!");
System.out.println("当前会见端口:"+request.getServerPort());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
配置两个Tomcat同时会见一个servlet