需要一个名为AccountService.5的服务来支持流量。所有这些实例都在docker container中运行。现在我需要运行一个计划任务。此任务应该只在一个AccountService实例上运行。但是不是所有的五个实例。其中一个不重要
我的问题是如何配置来实现这一点.Can eureka可以这样做吗?zookeeper似乎有能力管理集群。我需要将AccountService注册到Zookeeper吗?
希望有人可以与我分享经验
答案 0 :(得分:0)
考虑使用像Redis这样的共享数据存储,或者,如果您已经在数据库中使用数据库,则使用任务锁定。第一个出现的实例可以获取锁定,运行任务并释放锁定。
答案 1 :(得分:0)
使用基于Spring的任务调度@Schedule
答案 2 :(得分:0)
注意: 将创建锁并将其存储在TASK_LOCK表下。确保其干净,否则重新启动时会遇到问题。