多機環境下,特定任務只在單機執行

2021-09-29 13:28:23 字數 466 閱讀 5342

部署環境是兩台主機+乙個負載均衡器。

現在有乙個定時執行的任務希望只在單機上執行。

第乙個方案是用redis setnx:

系統啟用時,setnx 成功,則設定乙個標誌位,允許執行定時任務

另乙個機器setnx失敗,則不執行。

缺點是不智慧型,假如允許執行定時任務的機器宕機了,另一台機器不能自動切換成執行定時任務。

需要人為干預,重啟宕掉的機器前,也還需要 redis expire 命令釋放鎖。

第二個方案是使用zookeeper的臨時節點:

系統啟用時,建立指定路徑p的臨時節點a,建立成功,則設定乙個標誌位,允許執行定時任務

另乙個機器建立節點失敗,則不執行,同時監聽節點a的狀態。

假如允許執行定時任務的機器宕機了,zookeeper會刪除節點a,那麼另一台機器就會監聽到節點a的狀態變化,進而嘗試建立指定路徑p的臨時節點,建立成功,則設定乙個標誌位,允許執行定時任務。

MPICH多機環境搭建

1.新建三颱虛擬機器,在其中新建使用者cluster,通過配置 etc sudoers使cluster使用者具有臨時root許可權 配置 hosts檔案 將三颱機器命名為 master,node1,node2。2.配置ssh使三颱機器之間能免密登入,具體步驟如下 使用scp複製命令 將ssh key...

Linux讓應用只在特定桌面環境下自動啟動

預設情況下你自已新增的或自動新增到啟動選單的軟體會在所有桌面環境下啟動。你有沒有想過讓某個應用在特定桌面環境下自動啟動呢?如mailnag是乙個gnome shell mail notifier,如果你在unity使用,提醒會乙個很醜的對話方塊。本文將介紹如何讓應用只在特定桌面環境下自動啟動,如gn...

多物理機下kvm虛擬機器通訊

實現不同物理機下不同網段虛擬機器可ping通 物理機 centos 虛擬機器 ubuntu yum install qemu kvm libvirt virt manager 驗證kvm是否安裝成功 lsmod grep kvm伺服器a 網段配置192.168.122.伺服器b 網段配置192.16...