元件生命週期

本文件說明元件管理員如何與個別元件互動 管理執行個體

生命週期狀態

元件執行個體會經歷下列主要的生命週期狀態:

元件生命週期狀態

元件執行個體可在儲存媒介上保留獨立的永久狀態 檢查應用程式能否繼續運作 但每次重新啟動時都會發生問題

已建立

您可以透過以下方式建立元件執行個體:

  • 已設為元件管理員的根元件。
  • 靜態發現為另一個人的「子項」 元件。
  • 集合的執行階段期間動態建立。

每個元件執行個體都有一個元件網址,說明如何解析 以及一個專門透過 從根層級詳情請參閱「元件 ID」。

建立完成後,就可以解析元件執行個體,或 已刪除

已解決

解析元件執行個體會擷取 指定元件網址元件管理員會找出 元件解析器支援單調 環境。開發人員可以使用 ffx component resolve 指令。

元件必須先成功解析後,才能啟動

已開始

啟動元件執行個體會載入並執行元件的程式 讓 Kubernetes 叢集取得必要的功能

啟動元件執行個體最常見的原因就是 元件會繫結至其中一項公開的功能。開發人員可以 也可以使用 ffx component start 指令

啟動後,元件執行個體會繼續執行,直到 停止

已停止

停止元件執行個體會終止元件的程式,但會保留 容器的永久狀態。元件會在 由元件的「執行器」定義。

元件架構可能會因為下列原因而停止元件執行個體:

  • 元件即將遭到刪除。
  • 正在關閉。

元件可以實作生命週期處理常式 (範例), 會收到即將終止的事件通知。 請注意,在下列情況下,元件可能無法收到這類事件: 資源耗盡、當機或停電。

停止後,您可以重新啟動元件執行個體,或 關機

關機

元件管理員會將元件執行個體的最終執行狀態設為 表示該執行個體無法重新啟動,並表示該執行個體 即可安全銷毀

已刪除

元件執行個體可以透過下列方式刪除:

  • 在執行階段動態移除集合。這是 如果元件是要移除的其他元件的子系,則傳回 true。

刪除後,元件管理員會將該執行個體從 元件拓撲,包括所有永久狀態。相同來源的新例項 每個元件都有自己專屬的身分和狀態 執行個體。

生命週期動作

本節說明元件架構使用以下常見動作: 轉換元件執行個體的生命週期狀態

裝訂

元件執行個體 AA 時,會「繫結」至另一個元件執行個體 B 會連線至 B 提供的某些能力。這會使元件 B 如果尚未執行,則 start

確切來說,A 可繫結至 B 的方式有兩種:

,瞭解如何調查及移除這項存取權。

關機排序

當元件架構決定「關閉」某個元件時, 關閉元件及其子項。 這是遞迴行為,亦即關閉元件時 向下執行整個拓撲

領域內的元件會按照特定順序關閉 這些元件之間的強烈依附關係元件之間的依附元件 有向非循環圖 (DAG) 和元件依目標到來源的順序遭到關閉。

依附元件圖表中會考量所有功能。功能 預設提供的依附元件 指定 dependency: weak

舉例來說,假設具有元件 ABCD 的領域, 其中包含以下優惠:

  • A 非常提供 BC 的能力。
  • B 非常提供 C 的能力。
  • C 極弱提供 B 的能力。

以下是相關領域的圖片:

元件關閉範例

關閉順序如下:

  • DC 沒有相依關係,因此可依任何順序關閉。
  • B 可在 C後關閉。
  • A 可在 B後關閉。

依附元件較弱

請注意,元件依附元件會形成 DAG 週期。也就是說,在上述範例中,C 無法強烈提供 具備 A 的能力。

不過,系統允許 C 提供使用 dependency: "weak"A 能力。 弱依附元件不會視為依附元件 DAG 的一部分,且會 不會影響關閉順序