簡體   English   中英

我可以在Java中使用“永遠編寫一次運行”的系統嗎?

[英]Can I have a “write once run forever” kind of system in Java?

我了解OSGi模塊可以在運行時動態添加和刪除。 那么有可能有一個系統,我可以升級它,而不必把它取下來? (沿着Erlang / OTP的思路思考,但是我要說我不需要Erlang系統的容錯保證)。 如果不是阻塞因素是什么? 目前,我正在研究OSGi,但還沒有深入挖掘。

腳注
“寫一次,永遠運行”來自於Erlang的Joe Armstrong。

是的,OSGi是你的答案。

但如果你不需要最高的容錯能力,那么什么是“一次寫入,永遠運行”有什么用呢? 您在開始時就會對架構產生很多限制。

您希望在運行時可以替換哪種組件?

編輯:OSGi超過13歲,尚未“常識”或廣泛使用。

我很想說一些我以前的同事用過的耆那教 這是JaNein的融合。 基本上理論上你可以做到,但在實踐中你做不到。

所以你應該使用Erlang或忘記這個概念。

有很多地方可能會出錯。 例如,如果您計划使用Tomcat部署您的應用程序,那就是它的資源泄漏。 它根本無法永遠運行。

Run Forever想法的問題在於它假設什么都不會出錯,而你和其他任何人都不會犯錯誤。 在現實世界中犯了錯誤。 你最好開發一個允許操作員錯誤之類的系統。

如果您要提供服務,請允許它關閉並使用冗余或維護窗口重新啟動。 即使使用OGSi升級軟件,它仍然會在非常短的時間內執行切換,假設它每次都有效(即您沒有引入阻止它的錯誤)

OSGi在工作時非常有用,但它會增加您需要允許的所有開發過程的開銷。 它不適合快速開發環境。 恕我直言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM