[英]How to achieve that a task just run on one instance with spring-boot microservice architecture
需要一個名為 AccountService.5 的服務來支持流量。所有這些實例都在 docker 容器中運行。現在我需要運行一個計划任務。 此任務應該只在單個 AccountService 實例上運行。但不是所有五個實例。哪個不重要
我的問題是如何配置來實現這個。eureka可以這樣做嗎?zookeeper似乎有管理集群的能力。我需要將AccountService注冊到Zookeeper中嗎?
希望有人能和我分享經驗
考慮使用像 Redis 這樣的共享數據存儲,或者,如果您已經在使用數據庫,則可以使用數據庫中的表來獲得任務鎖。 第一個出現的實例可以搶鎖,運行任務,並釋放鎖。
注意:鎖是在 TASK_LOCK 表下創建和存儲的。 確保它是干凈的,否則您將無法重新啟動。
使用基於 Spring 的任務調度@Schedule
更多請點擊這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.