設定 Liberty 時的平台即服務 (PaaS) 環境注意事項
IBM® Bluemix®、Pivotal Cloud Foundry 和 OpenShift 等之類的平台即服務 (PaaS) 環境提供應用程式實例的管理與監視,但還是有一些限制。 基於 PaaS 環境的一些固有性質,有些 Liberty 特性是冗餘的或者會採取不同的行為,因而不支援這些特性。
Liberty 伺服器管理限制
與 Liberty 群體有關的特性不適用於 PaaS 環境,因為所有 Liberty 伺服器 JVM 實例是由 PaaS 基礎架構來啟動、停止和管理。Liberty 的「管理中心」特性並非設計用於 PaaS 環境中,在該環境中,可以將應用程式調整成使用多個 JVM 實例,而不需要群體控制器。在這種拓蹼中,當對「管理中心」發出要求時,可能會將該要求導引至任何執行中的實例,且只有執行該要求的伺服器才具有可見性。
- adminCenter-1.0
- clusterMember-1.0
- collectiveController-1.0
- collectiveMember-1.0
- dynamicRouting-1.0
- healthAnalyzer-1.0
- healthManager-1.0
- scalingController-1.0
- scalingMember-1.0
檔案系統限制
大部分的 PaaS 環境不提供持續性本端檔案系統給其應用程式。對於 Liberty,在伺服器內,如果應用程式和元件會將資料寫到本端,並預期即使伺服器 JVM 重新啟動,該資料仍會持續保存,則會因此受到影響。
當交易中涉及多個資源管理程式時,Liberty 交易管理程式會將日誌檔寫到本端檔案系統。在 JVM 失敗並重新啟動之後,如果日誌無法使用,則交易無法自動完成而必須手動解決,以便解除鎖定資料,並使該資料在資源管理程式之間維持一致。為了避免發生此情況,Liberty 建置套件或卡匣會阻止撰寫交易日誌記錄,並使應用程式發生異常狀況,以防列入第二個資源。如此一來,雖然交易仍可以與單一 XA 資源搭配使用,但是無法將第二個交易資源列入交易中。此外,無法使用「Web 服務基本交易」,因為它們一律會撰寫日誌記錄。
-Dcom.ibm.tx.jta.disable2PC=true
- wsAtomicTransaction-1.2
- 會使用交易的其他特性(視應用程式行為而定)
網路限制
- appClientSupport-1.0
- appSecurityClient-1.0
- ejbRemote-3.2
在某些情況下(例如,在路由器終止 SSL),Liberty 需要靠 HTTP 標頭,來說明原始用戶端要求的某些層面。當您在 PaaS 環境中使用 SSL 時,必須由 PaaS 路由器設定標頭。在 IBM Bluemix 中,這些標頭已設定,因此您可以直接使用 ssl-1.0 特性和任何相依於它的特性,而不需要進行任何的變更。如果您希望在其他 PaaS 環境中能達到預期的行為,您可能需要按照 NGINX 和 WebSphere® Application Server 中的說明來配置路由器,以設定這些標頭。
- ssl-1.0
- 相依於 ssl-1.0 的其他特性,如 Secure Socket Layer 的啟用此特性的特性一節中所列
Liberty Swagger 處理器
在 Cloud Foundry 環境中,Liberty 中的 Swagger 處理器(包括其使用者介面)會檢查 VCAP_APPLICATION 環境變數是否存在。它會使用 uris 陣列的第一個元素作為 API 主機。