欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

通过Jenkins自动构建dubbo服务时的问题汇总

程序员文章站 2022-06-27 14:15:01
最近接触新的dubbo项目,项目初始时,测试环境的提供者服务发布较频繁,奈何公司又没有自动发布工具,遂自己在测试环境中搭建了Jenkins用于dubbo服务的发布。由于第一次使用,过程中也遇到了一些问题,记录与此 Q1、DubboShutdownHook 问题描述 打包/停止原进程/拷贝/解压 过程 ......

最近接触新的dubbo项目,项目初始时,测试环境的提供者服务发布较频繁,奈何公司又没有自动发布工具,遂自己在测试环境中搭建了jenkins用于dubbo服务的发布。由于第一次使用,过程中也遇到了一些问题,记录与此

q1、dubboshutdownhook

问题描述

打包/停止原进程/拷贝/解压 过程一切正常。在执行启动脚本正常执行,可惜服务就是未正常启动,手动启动正常。翻查启动日志发现一段警告信息:

dubboshutdownhook warn unable to register log4j shutdown hook because jvm is shutting down. using simplelogger

解决

初步判断是与log4j相关,最终发现与项目中log4j2.xml相关。可移步:http://javahonk.com/unable-to-register-shutdown-hook-because-jvm-is-shutting-down/

可以log4j2.xml中添加shutdownhook=”disable” 完整内容如下

<?xml version="1.0" encoding="utf-8"?>
<configuration status="info" shutdownhook="disable">
... 
</configuration>

bingo smile

q2、jenkins构建完成后杀死衍生进程

问题描述

在解决完上一个问题后,没有出现那一段警告信息了,本以为可以偷懒了,谁知道dubbo服务依旧还是没有启动,这时候翻查日志,对比手动启动的日志无任何不同,陷入沉思。依旧是,正常执行脚本,日志也说明已经启动,可就是没有该进程,难道是被什么给杀掉了?
于是带着这个思路去搜索,jenkins杀死进程发现了一条关键信息:
https://blog.csdn.net/u011138533/article/details/53941123
jenkins默认会在build结束后kill掉所有的衍生进程
原来如此!!

解决

在execute shell输入框中加入build_id=dontkillme
完整如下:
通过Jenkins自动构建dubbo服务时的问题汇总