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

标签 java spring spring-boot tomcat jar

我有一个 spring boot 项目。我将我的项目作为 jar 远程部署在 tomcat 上。我在远程服务器上运行的用于部署 jar 的脚本:

#!/bin/sh

/usr/local/java8/jdk1.8.0_71/bin/java -jar -Duser.timezone=Europe/Athens example.jar> log.out

整个项目运行良好,但有时 Web 服务会自动调用,而无需我做任何事情或让调度程序调用它们。

例如我的 Controller 类中的一个方法

@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 INFO http-nio-8044-exec-9 TestController:238 - heartbeat

02/05/19 15:24:22.133 INFO http-nio-8044-exec-1 TestController:238 - heartbeat

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

02/05/19 15:26:22.782 INFO http-nio-8044-exec-7 TestController:238 - heartbeat

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

在我的 pom 和属性中,我找不到与调度程序相关的内容。此外,我的 Controller 方法都没有使用@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

最佳答案

它可以是 kubernetes liveliness probe,如果端点/heartbeat 配置为 liveliness probe,kubernetes 会在每个配置的时间间隔轮询端点以检查服务是否存活。在你的情况下,它是一分钟。

如果您不在 kubernetes 环境中,端点可能会被监控系统调用以检查服务健康状况。

关于java - 每分钟都会调用远程 Web 服务,而无需我调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54536254/

相关文章:

java - 如何在不使用apache的情况下在java servlet中上传和保存文件?

java - 如何通过 Java EntityManager 调用 PL/SQL 存储函数

spring - 如何修复 Spring Boot 一对多双向无限循环?

java - Spring Boot @ManyToMany 未显示在 JSON 中

java - 尝试存储链表数组时出现 ArrayStoreException

从构建的 JRT 模块运行应用程序时,从 URL 构造的 JavaFX 11 javafx.scene.image 抛出 SSLHandshakeException

java - Spring应用程序启动失败

java.lang.IllegalStateException : LifecycleProcessor not initialized . ...上下文 - 在我的聊天应用程序上

Java spring + hibernate 接口(interface) (DAO) <bean>

database - spring boot微服务的不同实例和数据完整性