spring - 如何使用 spring-boot 微服务架构实现一项任务只运行在一个实例上

标签 spring spring-boot spring-boot-actuator

有一个名为 AccountService 的服务。需要 5 个实例来支持流量。所有这些实例都在 docker 容器中运行。现在我需要运行一个计划任务。此任务应该只在单个 AccountService 实例上运行。但是不是所有五个实例。哪一个并不重要

我的问题是如何配置来实现这一点。eureka可以做到这一点吗?zookeeper似乎有能力管理集群。我需要将AccountService注册到Zookeeper中吗?

希望有人可以和我分享经验

最佳答案

考虑使用像 Redis 这样的共享数据存储,或者如果您已经在使用数据库,则考虑使用数据库中的表来拥有任务锁。第一个出现的实例可以获取锁,运行任务,然后释放锁。

关于spring - 如何使用 spring-boot 微服务架构实现一项任务只运行在一个实例上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436396/

相关文章:

spring - 为什么 Range header 不能用于使用嵌入式 Tomcat 从 Spring Boot WAR 托管的静态资源?

spring - 如何使用 spring boot 在 H2 控制台中设置默认的 JDBC URL 值

java - 多部分文件上传 Spring Boot

spring-boot - Spring Boot Tomcat访问日志

java.lang.instrument ASSERTION FAILED 为 spring boot 执行器添加依赖项后

java - 将响应映射到 DTO 时 spring 中的 RestClientException

java - 如何添加额外的自定义 header ,同时抛出异常以将消息存储在 kafka 上的 dlq 中?

java - 关闭选定的 Spring Boot 系统指标

spring-boot - Spring Boot Actuator PoolingHttpClientConnectionManager 指标

spring-boot-actuator - 健康端点在 spring-boot-actuator 服务中不起作用