前几天在面试阿里的时候面试官问这么一个问题:
在Nginx+Tomcat的负载均衡场景中,如果某台服务器意外宕机的时候,Nginx对于将要分发到这台服务器的处理策略是怎么样的?
笔者当时这个问题没有回答后,面试介绍后马上做了实验并查询了相关的Nginx的负载均衡的配置项。
先搭建出Nginx+Tomcat的环境
这个比较简单,负载均衡算法指定为轮循法,Tomcat为了启动方便使用Spring Boot内嵌的Tomcat。
Tomcat一号机,端口server.port=8080
@SpringBootApplication
@RestController
public class App {
@RequestMapping("/set")
public String home(HttpServletRequest request) {
return "One!"+new Date();
}
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Tomcat二号机,端口server.port=9090
tomcat二号机需要模拟一个内存溢出的场景
启动时指定JAVA_OPTS=”-Xms32M -Xmx64M”如果在intellij中则在editConfiguration中修改。
@SpringBootApplication
@RestController
public class App{
static HashMap<String,String> map = new HashMap<String,String>();
@RequestMapping("/set")
public String home(HttpServletRequest request) {
new Thread(){
@Override