每分钟都会调用一次远程Web服务,而无需我调用它们

时间:2019-02-05 14:08:43

标签: java spring spring-boot tomcat jar

我有一个Spring Boot项目。我将项目远程部署为tomcat的jar。我在远程服务器上运行以部署jar的脚本:

  

#!/ bin / sh

     

/usr/local/java8/jdk1.8.0_71/bin/java -jar   -Duser.timezone =欧洲/雅典example.jar> log.out

整个项目运行正常,但是有时无需我做任何事情或没有调度程序就可以自动调用Web服务。

例如我的控制器类中的方法

@RequestMapping(value = "/heartbeat")
public ResponseEntity<String> heartbeat() {
    Log.info("heartbeat");
    return new ResponseEntity<>("success", org.springframework.http.HttpStatus.OK);

}

当远程部署项目时,即使没有人调用它,我也从日志中看到每分钟都会调用此方法:

  

02/05/19 15:23:22.721信息http-nio-8044-exec-9 TestController:238-   心跳

     

02/05/19 15:24:22.133信息http-nio-8044-exec-1 TestController:238-   心跳

     

02/05/19 15:25:22.426 INFO http-nio-8044-exec-8 TestController:238-   心跳

     

02/05/19 15:26:22.782信息http-nio-8044-exec-7 TestController:238-   心跳

     

02/05/19 15:27:22.179 INFO http-nio-8044-exec-5 TestController:238-   心跳

在pom和属性中,我找不到与调度程序有关的内容。另外,我的所有控制器方法都没有使用@Scheduled进行注释。有什么想法吗?

application.properties

management.context-path=/internal/manage
management.security.enabled=false
endpoints.health.id = health
endpoints.health.sensitive = true
endpoints.health.enabled = true
endpoints.info.id=info
endpoints.info.sensitive=false
endpoints.info.enabled=true
info.app.name=Test app name
info.app.description=Test project
endpoints.actuator.enabled=true
spring.application.admin.enabled=true
endpoints.hypermedia.enabled=true
management.info.git.mode=full

2 个答案:

答案 0 :(得分:0)

它可能是一个kubernetes活度探​​针,如果将端点/ heartbeat配置为一个活度探针,则kubernetes会在每个配置的时间间隔轮询该端点,以检查服务是否还活着。就您而言,这是一分钟。

如果您不在kubernetes环境中,则监视系统可能会调用该端点以检查服务运行状况。

答案 1 :(得分:0)

在使用/internal/manage/trace.json端点之后,我发现web服务被heatlh状态工具调用。我只是不知道我们在使用这个工具。