多台Server利用SelectForUpdate讓只有一台Server有執行權

多台Server利用SelectForUpdate讓只有一台Server有執行權

這種設計是同時讓多台Server做同一項功能,但一次只有一台Server能搶到優先執行權。
除了搶到執行權的Server,其它台可以當作備援Server使用,以防只有一台Server又發生
故障時,還有其它台Server可以執行。先執行到Select For update的會搶到執行權,
其它台Server進來會select到null直接跳掉。

Select For Update

1
2
3
4
5
6
SELECT updatedate from systemsetting where key = 'function1' FOR UPDATE;
if (updatedate != null) {
//do one thing
}
用以上設計,同時四台Server進來執行該SQL時,只會有一台Server會先拿到updatedate
其它三台Server會拿到null,就只會有一台Server可以拿到執行權。