1. 程式人生 > >Java Service Wrapper 淺談

Java Service Wrapper 淺談

系統 問題 可靠 但是 jar包 監聽端口 很多 就是 企業

  在實際開發過程中很多模塊需要獨立運行,他們並不會以web形式發布,傳統的做法是將其壓縮為jar包獨立運行,這種形式簡單易行也比較利於維護,但是 一旦服務器重啟或出現異常時,程序往往無法自行修復或重啟。解決服務器重啟的傳統做法是編寫一段shell腳本隨服務器啟動而運行。但現在我們有一種更加簡潔實用的方法可以解決上述問題—— Java Service Wrapper (JSW)。

  Java Service Wrapper 顧名思義就是將java程序包裝成系統程序,這樣可以隨著系統的運行而運行。換句話說 JSW可以將我們的java後臺程序包裝成一個後臺服務運行。除此之外,JSW還可以在java程序掛掉以後自動拉起服務,相當於提供了一個守護進程。JSW主要目標就是,單點服務盡可能做到高可靠,程序掛了之後立馬拉起,這樣能夠大大降低運維成本。

  JSW除了支持 Windows和Linux還支持其他平臺,幾乎包含了所有的系統環境,十分強大,JSW分為社區版和企業版,社區版開源並且免費,企業版收費但是功能更加強大!

  特性:1、多平臺支持

     2、簡單的安裝步驟,即可將java程序當成後臺進程方式運行

     3、Java服務高可靠,服務掛了立馬拉起

     4、無需編寫腳本,靈活配置,可定制化JSW的配置和JVM的配置

     5、Log功能(針對Java標準控制臺輸出)

  上述內容說到,JSW可以充當我們的守護進程,當服務掛掉以後JSW能夠自動拉起(RESTART),當JVM hung時間過長時,也會將服務重啟。so,how did it do it !

  JSW兩個概念:JSW守護和wrapper。守護進程用來守護我們的應用程序,掛掉後立馬拉起。而wrapper實際上就是在我們的應用程序上包裝了一層。JSW守護進程會開啟一個ServerSocket監聽端口(服務端)。而對於wrapper,內部會開啟一個Socket(客戶端)連接到守護進程的ServerSocket監聽端口上。守護進程在wrapper連接上自己以後,就會定期地發送ping包給wrapper,wrapper收到以後,會返回一個包,告訴守護進程自己沒問題,I‘m ok ! 。若守護進程在一定時間內沒有收到wrapper返回的包,則認定JVM(我們的應用程序)hang住了。技術分享圖片

此篇博客,參考了網上搜索的資料,寫在此處僅為方便自己查閱學習,後續將繼續摸索JSW

Java Service Wrapper 淺談