我有一個控制檯Java應用程序,它可以在遠程服務器上運行(nohup java -jar myapp.jar &)。Java守護進程部署
經常(每隔一天)我需要用新的JAR文件替換(每當我修復缺陷時)。
目前我通過使用ssh(WinSCP)連接到服務器來做到這一點。
如何創建一個機制,使用它我可以通過http協議升級應用程序?我可以使用JMX嗎?
這一機制應該做以下幾件事:
一)停止當前運行的應用程序。
b)將新的JAR文件上傳到服務器。
c)啓動新的JAR文件。
我有一個控制檯Java應用程序,它可以在遠程服務器上運行(nohup java -jar myapp.jar &)。Java守護進程部署
經常(每隔一天)我需要用新的JAR文件替換(每當我修復缺陷時)。
目前我通過使用ssh(WinSCP)連接到服務器來做到這一點。
如何創建一個機制,使用它我可以通過http協議升級應用程序?我可以使用JMX嗎?
這一機制應該做以下幾件事:
一)停止當前運行的應用程序。
b)將新的JAR文件上傳到服務器。
c)啓動新的JAR文件。
基本上你需要將程序分解成兩個部分:
的monitor
分量獲取新的jar,停止程序,取代了罐子,重新啓動該程序
實際程序,控制檯java應用程序
理論上你可以在單個java進程中完成所有這些工作,但是額外的在我看來,複雜性是不值得的。
是的,我知道我可以自己做。但是,如果有現成的解決方案,我想使用它們。不想重新發明輪子:) –
有Java Web Start,但它更適合於交互式應用程序,它只在啓動時檢查最新版本。 –
在LiveRebel中,對於獨立應用程序(即守護進程),there's native support。所以主應用程序運行在與指揮中心通信的看門狗代理上。從命令中心可以管理更新。
服務器運行什麼操作系統?您建議的熱部署機制聽起來像是一個合理的工作量。如果服務器運行的是POSIX操作系統,那麼腳本可以更容易地使用sftp文件,然後通過ssh遠程運行一些命令以重新啓動服務器?您可以將腳本直接合併到您的構建機制中。 – Adamski
服務器正在Ubuntu服務器上運行。 –