我们的主要应用程序在端口8443上提供服务,我们使用management.port
在端口8444上提供执行器endpoint服务。
有没有办法让一个endpoint(健康endpoint)同时服务于8443和8444,而将其余endpoint仅保留在端口8444上?
如果您正在使用内置的Tomcat容器,您可以:
您的代码可能看起来像这样。
@ComponentScan
@Configuration
@EnableAutoConfiguration
public class Application extends WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter implements EmbeddedServletContainerCustomizer {
@Autowired
private PortInterceptor portInterceptor;
public static void main(String[] args) throws Exception {
SpringApplication application = new SpringApplication(Application.class);
application.run(args);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(portInterceptor);
}
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory)container;
Connector connector = new Connector();
connector.setPort(8444);
tomcat.addAdditionalTomcatConnectors(connector);
}
}
@Component
public class PortInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if(request.getLocalPort() == 8444){
return isHealthCheckRequest(request);
}
return true;
}
}
问题内容: 我要对服务器进行编程,但是想知道我的想法是否可能。我的程序将在多个端口上输出到多个客户端-每个端口都可以由多个客户端访问。 通常,我会使用线程套接字服务器,但是在这种情况下,我需要它可用于多个端口。我想到的用法是下面一个模糊的伪代码: 启动服务器 侦听多个端口上的传入连接 识别正在连接的端口 如果是端口1,请启动一个线程以侦听客户端并输出消息类型 如果是端口2,请启动一个线程以侦听客户
本文向大家介绍springboot在服务器上的几种启动方式(小结),包括了springboot在服务器上的几种启动方式(小结)的使用技巧和注意事项,需要的朋友参考一下 一、使用内置的tomcat,通过java -jar的方式启动 比如:java -jar bms.jar 但是这种启动方式 一旦关闭控制台 或者crtl+c 退出 此时应用就关闭了 所以我们需要换种方式 springboot中的ma
本文向大家介绍Springboot启用多个监听端口代码实例,包括了Springboot启用多个监听端口代码实例的使用技巧和注意事项,需要的朋友参考一下 前段时间服务有这么个需求,web端的接口需要有web安全相关的整改,但是对内的接口并不需要。所以服务需要多个端口启动,在此记录下 代码如下 application.yml server: port: ${appPort:8800} addition
我想在我的web服务器上运行多个非集群垂直市场。每个verticle由一个单独的进程/命令行启动,并为同一个主机和具有唯一路由的同一个端口创建自己的HTTP服务器(vertx.createHttpServer)。然而,这似乎不起作用,因为在开始一个垂直之后,所有进一步的垂直抛出一个BindException“地址已经在使用中”。 作为Vert. x的新手,我只能想到两种方法来通过这个考试: < l
我能够在我的windows机器上运行单个zooKeer实例。但在单个windows机器上成功设置多个zooKeer实例。 根据指南,我执行了以下步骤: > 在conf文件夹中创建多个zoo.conf文件。结构如下 zookeeper\u主页--|形态--|动物园。cfg zoo\u 2。cfg zoo\u 3。cfg公司 zoo.cfg C:/opt/zooeger/data C:/opt/zoo
我需要在2个或更多带有HTTPS的端口上运行同一台服务器。在早期的生产中,我们为服务配置了端口10500。目前,我们需要在启用SSL的情况下在443和10500上运行它。 java.lang.IllegalArgumentException:在方法名[0x160x030X010X010X000X010XFC0x030X030X810X00AC0x1B0x10`0xB80X8D0xAE0x9E0xE