在实际开发过程中很多模块需要独立运行,他们并不会以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 浅谈的更多相关文章

  1. Java Service Wrapper简介与使用

    在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是一旦服务器重启或出现异常时,程序往往无法自行修复或重启.解 ...

  2. 使用 Java Service Wrapper 启动java后台进程服务

    Java Service Wrapper (http://wrapper.tanukisoftware.com/doc/english/product-overview.html)可以很方便得在各个平 ...

  3. java service wrapper 级别为info导致内存剧增直至溢出

    上周,公司某一环境发生java service wrapper内存剧增导致最后被自动killed的情况,经过分析,确定导致java service wrapper(后续简称wrapper)守护进程内存 ...

  4. 利用JAVA Service Wrapper把JAVA程序做成windows服务

    今天做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式. ...

  5. 利用Java Service Wrapper将java项目添加到windows服务中

    1.web项目,即tomcat/resin添加至window系统服务,步骤如下:第一步:找到tomcat的bin目录,如:D:\apache-tomcat-8.0.26\bin第二步:打开cmd,cd ...

  6. 使用Java Service Wrapper在Linux下配置Tomcat应用

    前言 Java Service Wrapper是Tanuki Software的一个产品,可以将Java应用注册成Windows或Linux服务,使其可以随系统开机启动,同时可以监控Java应用的状态 ...

  7. Java Service Wrapper

    Java Service Wrapper 将Java 应用程序部署成Windows系统服务Java Service Wrapper 1 Product Overview 1 Editions 2 Me ...

  8. Java Service Wrapper 使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sinat_26279177/article/details/70807173 1       简介 ...

  9. Java Service Wrapper将java程序设置为服务

    有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper(下面简称wrapper)是目前较为流行的将Java程序部署成Windows服务的解决方案, 本文将讨论 ...

随机推荐

  1. NOIP 2017 P3959 宝藏 (状态压缩DP板子)

    洛谷题目传送门!! 题目的N这么小,当然是选择用状压DP啦!  等等,我好像不会状缩.... 首先,我们当然是要写状态转移方程了!! 那么,如果我们设  f[s]  状态s下,所要的最小花费,那么很显 ...

  2. 分别针对Customers表与Order表的通用查询操作

    1.针对customers表通用的查询操作 CustomerForQuery package com.aff.PreparedStatement; import java.lang.reflect.F ...

  3. Bitwarden_rs搭建

    最近LastPass网络极其不稳定,正好闲下来找到了Bitwarden_rs这个替代品,感觉不错,分享记录下部署过程. 一.Docker方式部署 #获取镜像 docker pull bitwarden ...

  4. Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,因此这篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非 ...

  5. AUTOSAR-软件规范文档中的UML

    https://mp.weixin.qq.com/s/vm5vWNSpbNIYh25-LjJfYg   AUTOSAR软件规范文档中存在两种UML图: Sequence diagrams Config ...

  6. 蒲公英 · JELLY技术周刊 Vol.09 StackOverflow - 2020 开发者年度报告

    登高远眺 沧海拾遗,积跬步以至千里 基础技术 StackOverFlow 2020 年开发者报告 技术问答社区 StackOverFlow 的年度报告,本次报告统计了来自于全球各地共 65000 名开 ...

  7. JavaScript (四) js的基本语法 - - 函数练习、arguments、函数定义、作用域、预解析

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.函数练习 1.求最值 // - 求2个数中的最大值 function getMax(num1, nu ...

  8. Qcom rampdump解析工具使用

    使用如下命令获取qcom工具: ljj@ljj-ThinkCentre-M83:~/git/qcom_tools/ramdump$ git clone git://codeaurora.org/qui ...

  9. Java实现 LeetCode 108 将有序数组转换为二叉搜索树

    108. 将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: ...

  10. java实现黄金队列

    ** 黄金队列** 黄金分割数0.618与美学有重要的关系.舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子 ...