伺服器集群控制僅有一台伺服器執行任務

2021-08-18 03:28:41 字數 699 閱讀 4370

定時任務(批處理任務)設計不合理的反面教材:

曾經使用spring batch批處理框架的tasklet進行批處理任務,使用redis鎖進行併發控制,在任務開始前使用redis的setnx命令往redis中插入值,任務結束後刪除值,任務只有在當前redis中不存在值時才執行啟動。

設計不合理之處:

存在單點故障問題,一台機器a開始處理任務時,其他機器不處理任務,當伺服器a在批處理任務執行到一半時宕機,redis中的值需要等待自動過期才可刪除,因此在redis值自動過期前,此批處理任務不會再次啟動。

伺服器集群中,定時任務(批處理任務)設計需要解決的問題:

1、如果集群中每台機器都啟動定時任務,容易造成資料重複處理的問題。

2、如果採用定時任務開關的方式,只一台機器的開關on,其他機器的開關off,可以避免資料重複處理的問題,但是存在單點故障的問題。

解決方式有:

1、任務從資料庫中讀,保證只有一台機器可以搶到任務。

2、將任務的定時觸發模組、任務的執行模組分離。任務的定時觸發模組每台機器都允許觸發任務,但是任務的執行模組,只要收到乙個執行任務,那麼下乙個執行任務就被忽略掉。任務開始執行設定running = true,任務執行完畢設定running = false,當running為ture時候,下乙個任務不允許執行。需要注意的是,一定要在finally中加上running = false,要不然任務異常的話,下一次任務永遠不會再執行了。

從一台伺服器向另一台伺服器拷貝檔案

使用scp命令 scp就是secure copy,scp在主機複製檔案。他使用ssh作為資料傳輸。而且用同樣認證和安全性。scp將在認證中請求輸入密碼所有的檔案可能需要伺服器和使用者的特別描述來指明檔案將被複製到 從某台伺服器。而兩個遠端登入的伺服器間的檔案複製是允許的。scp命令選項 1 強制sc...

我是一台伺服器

我是一台伺服器,待在某家半死不活的資料中心裡,混日子。聽那些上了年歲的前輩講,很久很久以前,我所在的這家資料中心也是行業翹楚。先進的裝置 一流的人才 瘋狂的市場推廣讓它大出風頭,優厚的待遇和輕鬆的環境也成為了同行羨慕的物件。那時候,前台的妹子都月薪上萬了 前輩一邊這麼說,一邊擦去嘴角留下的哈喇子,一...

linux 從一台伺服器向另臺伺服器複製檔案

使用scp命令 sudo scp p 2222 username 192.168.0.200 home db db data.sql.gz home db db data.sql.gz scp命令簡介 scp 1246bcpqrv c cipher f ssh config i identity f...