某通动力是一个外包公司,目前已是国企,做人力外包,在银行驻场,工作特别稳定,但是我还是面挂了。我继续整理我面挂了的题目。
一 简单讲讲Nginx的主动与被动健康检查
被动健康检查
面试官说简单讲讲,千万不要听他的鬼话,讲得越多越好,特别是这种冷门问题。但是这个问题我是真的不懂哈。为此我专门搭建一个nginx试试啊。
Nginx默认是被动健康检查,被动健康检查就是max_fails与fail_timeout两个配置就好了,可以配置在upstream中,也可以配置在server里。
首先配置nginx:
upstream localstream {
server 127.0.0.1:8080 max_fails=3 fail_timeout=3s;
}
server {
listen 80;
server_name localhost;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding 'gzip';
location / {
proxy_pass http://localstream;
}
}
再简单搞个spring boot web,测试下:
package com.youngthing.spring.boot.web.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 3/19/2022 2:26 PM 创建
*
* @author 花书粉丝
*/
@RestController
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class);
}
@GetMapping("/")
public String welcome() {
return "Welcome";
}
}
主动健康检查
主动健康检查是Nginx的商业版Nginx plus中的功能,当然如果没钱买正版,可以申请免费试用30天。代码如下:
server {
listen 80;
server_name localhost;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding 'gzip';
location / {
proxy_pass http://localstream;
health_check interval=2s fails=2 passes=5 uri=/ match=welcome;
}
}
因为申请试用30天太麻烦了,所以我没测试使用效果。
二 Zk的四大节点类型
因为我Zk用得少,所以这次面试我没回答出来。后来我学习了下,才知道ZK有以下四大节点类型:
- PERSISTENT 持久化目录节点
- PERSISTENT_SEQUENTIAL 持久化顺序目录节点
- EPHEMERAL 临时目录节点
- EPHEMERAL_SEQUENTIAL 临时顺序目录节点