在实际开发过程中很多模块需要独立运行,他们并不会以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. Java IO(八) PipedInputStream 和 PipedOutputStream

    Java IO(八) PipedInputStream 和 PipedOutputStream 一.介绍 PipedInputStream 和 PipedOutputStream 是管道输入流和管道输 ...

  2. NIO 的非阻塞式网络通信

    1.阻塞与非阻塞   ①  传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write()时, 该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务. 因 ...

  3. 【转】sql用逗号连接多张表对应哪个join?

    逗号连接查询(用where连接条件): select order.id, order.orderdate,employee.id,employee.name from order,employee w ...

  4. nvm的安装,安装node,npm

    先说说我为什么使用nvm吧 最近在搞react-native,就碰到了很多坑,其中就有node带来的坑,当你运行react-native start (这是rn启动服务器的命令)就会报一个正则的错误, ...

  5. Parrot os KDE还是MATE版本

    在经历了KDE桌面痛苦折磨后,准备转投MATE的怀抱,不得不说Parrot KDE的ram的占有和windows 10差不多,大量的图形化处理,让我本来不多的内存更加血上加霜. 所以,关于版本的推荐, ...

  6. Java实现 蓝桥杯VIP 算法训练 新生舞会

    问题描述 新生舞会开始了.n名新生每人有三个属性:姓名.学号.性别.其中,姓名用长度不超过20的仅由大小写字母构成的字符串表示,学号用长度不超过10的仅由数字构成的字符串表示,性别用一个大写字符'F' ...

  7. Java实现 蓝桥杯VIP 算法训练 乘法表

    问题描述 输出九九乘法表. 输出格式 输出格式见下面的样例.乘号用""表示. 样例输出 下面给出输出的前几行: 11=1 21=2 22=4 31=3 32=6 33=9 41=4 ...

  8. Java实现 LeetCode 229 求众数 II(二)

    229. 求众数 II 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2, ...

  9. Java实现 LeetCode 76 最小覆盖子串

    76. 最小覆盖子串 给你一个字符串 S.一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", T = ...

  10. CDN百科 | 最近,你的APP崩了吗?

    过去几个月里,#xxx崩了#这个话题频繁出现在热搜榜上,让不少程序员小哥哥瑟瑟发抖. 从疫情宅家时期著名的视频APP“三连崩”,到全面复工开课后的在线教育平台与办公软件频繁宕机,再到报复性消费引发的点 ...