在使用k8s存活探针的时候,如果需要增加端口专门用于存活探针的调用端口,可以通过以下方式开启多个端口。
新增扩展端口
application.yml
server:
port: 8120
extensionPorts: 8121
配置Tomcat
EmbeddedTomcatConfig.java
package com.wenlincheng.pika.auth.config;
import org.apache.catalina.connector.Connector;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.List;
/**
* 配置开放多端口
*
* @author Pikaman
* @version 1.0.0
* @date 2021/4/2 1:56 下午
*/
@Configuration
public class EmbeddedTomcatConfig {
@Value("${server.extensionPorts}")
private String extensionPorts;
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcatWebServerFactory = new TomcatServletWebServerFactory();
Connector[] additionalConnectors = this.additionalConnector();
if (additionalConnectors != null && additionalConnectors.length > 0) {
tomcatWebServerFactory.addAdditionalTomcatConnectors(additionalConnectors);
}
return tomcatWebServerFactory;
}
private Connector[] additionalConnector() {
if (StringUtils.isBlank(this.extensionPorts)) {
return null;
}
String[] ports = this.extensionPorts.split(",");
List<Connector> result = new ArrayList<>();
for (String port : ports) {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(Integer.parseInt(port));
result.add(connector);
}
return result.toArray(new Connector[] {});
}
}
运行效果
2021-04-02 14:39:44.344 INFO 30701 -- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8110 (http) 8121 (http)
2021-04-02 14:39:44.355 INFO 30701 -- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-8110"]
2021-04-02 14:39:44.356 INFO 30701 -- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-8121"]
2021-04-02 14:39:44.362 INFO 30701 -- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-04-02 14:39:44.362 INFO 30701 -- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.37]
欢迎关注微信公众号:【皮卡战记】
