Cloud Foundry建議您將它們保存在Amazon S3,Dropbox或Box之類的東西上,或者將它們作爲Blob存儲在數據庫中,但這似乎是一個非常好奇的解決方法。
爲什麼你認爲這是一個奇怪的解決方法?
Cloud Foundry的主要優勢之一是彈性可伸縮性。一旦您的應用在CF上運行,您可以輕鬆地按需擴展和縮減。隨着您向上擴展,應用程序的新副本將在新鮮容器中啓動。隨着您縮小,應用程序容器被銷燬。只有屬於原始應用程序推送的文件纔會被放入新的容器中。
如果您有類似這些模板的文件隨時間發生變化,並將它們存儲在容器的文件系統中,則需要確保應用程序的所有實例始終具有相同的模板文件副本,你放大和縮小。當您上傳新模板時,您必須確保將其分發到所有實例,而不僅僅是處理上載的一個實例。隨着新的應用程序實例在擴展中創建,您需要確保它們具有最新版本的模板。
CF的另一個好處是應用程序健康管理。如果您的應用程序的實例因任何原因而崩潰,則CF將檢測到此情況並在新容器中啓動一個新實例。同樣,只有屬於原始應用程序推送的文件纔會被放入新鮮容器中。您需要確保在啓動後將最新版本的模板文件添加到容器中。
像這樣存儲文件的生命週期與應用程序容器外的持久性存儲中的應用程序分開,可以解決所有這些問題,並確保應用程序的所有實例都可以在縮放實例時獲得相同版本的文件並向下或在墜毀的實例復活。
只需要清楚,沒有任何東西阻止您上傳文件並將它們存儲在容器的文件系統中。 CF不會阻止你這樣做。由於上述原因,這只是一個不好的做法。 –
嗯,它主要是把這些文件放到一個我會覺得奇怪的數據庫中。我不介意在一個地方放置它們,以便所有的應用程序都可以到達那個地方,但是一個數據庫聽起來很奇怪,以包含這樣的文件。你會推薦存儲CF中的哪個組件?我更喜歡單一的提供商,所以不要轉向Amazon或Dropbox。 – Kristof
我的問題:我需要告訴一個DB2數據源在哪裏可以找到證書文件'ds.setSslCertLocation(String location)'。沒有辦法傳遞流,它總是期待一個文件路徑。也許你可以擴展你的答案如何處理這個特殊情況? – hgoebl