iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 26
0
Software Development

從零開始土炮MQ系列 第 26

九、需求與框架規劃(4) - 軔性 Resilience

需求五、當系統掛掉後,可第一时間切換到備用系統,避免對使用系統的使用者,造成困擾。

原先,直接對 Node 放入或取回資源,但若 Node 異常終止時,所有相依的服務都會發生異常。為了確保 Node 的服務可以持續服務,前面規劃利用 ManagerAgent 的組合,達到自動啟動的機制。

但是這樣還是無法滿足持續服務的目標。因為從服務異常終止重啟提供服務這段空窗期,對其他相依服務而言,都會造成服務無法正確運行。

https://ithelp.ithome.com.tw/upload/images/20191012/20107551h3JbDupLRP.png

將 Node 視為一個單純的服務節點。

接著,將存取 Node 的操作左移,外部所有的操作請求都送到 Service Guide ,由 Service Guide 負責所有操作的請求,導向目前可運行的 Node。另一方面,Node 就避開外部直接對它的操作。

https://ithelp.ithome.com.tw/upload/images/20191012/20107551psgbWb6PFh.png

接著規劃備援的機制,在斷開 Node 與外界直接的關連後,就保留了更多的操作空間。

我們將原本的 Node 稱為 Master Node,並另外建立一個 Node,稱為 Slave Node。在 Master Node 發生異常時,直接將所有的請求,從導向 Master Node 切換導向 Slave Node

切換的夠即時,理論上,可以將服務異常終止的影響減到最小。對外部請求存取的服務而言,它們可能完全不知道相依的服務有發生過異常。

https://ithelp.ithome.com.tw/upload/images/20191012/20107551dJfriAnn9v.png


上一篇
九、需求與框架規劃(3) - 軔性 Resilience
下一篇
九、需求與框架規劃(5) - Service Discovery
系列文
從零開始土炮MQ30

尚未有邦友留言

立即登入留言