Java Service Wrapper 淺談


  在實際開發過程中很多模塊需要獨立運行,他們並不會以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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM