Add km module kafka gateway

This commit is contained in:
leewei
2023-02-14 11:10:58 +08:00
parent 229140f067
commit 7008677947
4398 changed files with 977288 additions and 46204 deletions

210
control.sh Normal file
View File

@@ -0,0 +1,210 @@
#!/bin/bash
#############################################
## main
## 非托管方式, 启动服务
## control.sh脚本, 必须实现start和stop两个方法
#############################################
workspace=$(cd $(dirname $0) && pwd -P)
cd ${workspace}
APPNAME=service-discovery
# TODO 如果不需要tomcat服务请删除如下四行
#if [ -z ${APPNAME} ]; then
# catalina_cmd="/home/${USER}/apache-tomcat-7.0.79/bin/catalina.sh"
#else
# catalina_cmd="/home/${USER}/tomcat/bin/catalina.sh"
#fi
# TODO 设置模块名字
module=$APPNAME
app=${module}
cfgname=config
cfg="$workspace/WEB-INF/classes/${cfgname}.properties"
cfgdir="$workspace/WEB-INF/classes"
logfile=${workspace}/var/app.log
pidfile=${workspace}/var/app.pid
#export CATALINA_PID=${pidfile}
JVERSION=`java -version 2>&1 | awk 'NR==1{gsub(/"/,"");print $3}'`
major=`echo $JVERSION | awk -F. '{print $1}'`
mijor=`echo $JVERSION | awk -F. '{print $2}'`
if [ $major -le 1 ] && [ $mijor -lt 11 ]; then
export JAVA_HOME=/usr/local/jdk-11.0.2 #(使用jdk11请设置)
export PATH=$JAVA_HOME/bin:$PATH
fi
#nginx check
# TODO 如果不需要nginx服务请设置NGINX_CHECK=0
NGINX_CHECK=0
LOCAL_CHECK=0
source ./nginxfunc.sh
## function
function start() {
# 创建日志目录
mkdir -p var &>/dev/null
# check服务是否存活,如果存在则返回
check_pid
if [ $? -ne 0 ];then
local pid=$(get_pid)
echo "${app} is started, pid=${pid}"
return 0
fi
# XXX 如果各个机房节点级别有差异使用如下方式
# cfg
#local clusterfile="$workspace/.deploy/service.cluster.txt"
#if [[ -f "$clusterfile" ]]; then
# local cluster=`cat $clusterfile`
# local localconf=${cfgdir}/${cfgname}-${cluster}.properties
# if [[ -f $localconf ]]; then
# echo "using cfg file: $localconf"
# cp -f ${localconf} ${cfg}
# else
# echo "using default cfg file."
# fi
#else
# echo "$clusterfile is not existed!!!"
# exit 1
#fi
# 以后台方式 启动程序
echo -e "Starting the $module ...\c"
### XXX tomcat类程序启停
#bash $catalina_cmd start
#由于xiaoju-tomcat修改了启动脚本所以不能用CATALINA_PID来取pid
#pid=$(ps -ef | grep "catalina.startup.Bootstrap" | grep -v grep | awk '{print $2}')
#if [ "x$pid" = "x" ]; then
# echo "start tomcat failed!!!"
# exit 1
#else
# if [ ! -z "${pidfile}" ]; then
# echo $pid > ${pidfile}
# else
# echo "pidfile must be provided!!!"
# exit 1
# fi
#fi
### XXX JAVA类程序启停
# nohup java -jar XXXNAME-*.jar 8080 > /dev/null 2>&1 &
cd service-discovery
nohup ./bin/kafka-server-start.sh ./config/server.properties > /dev/null 2>&1 &
cd ../
# 保存pid到pidfile文件中
echo $! > ${pidfile}
# 检查服务是否启动成功
check_pid
if [ $? -eq 0 ];then
echo "${app} start failed, please check!!!"
exit 1
fi
echo "${app} start ok, pid=${pid}"
# 启动成功, 退出码为 0
return 0
}
function stop() {
local timeout=60
# 循环stop服务, 直至60s超时
for (( i = 0; i < $timeout; i++ )); do
# 检查服务是否停止,如果停止则直接返回
check_pid
if [ $? -eq 0 ];then
echo "${app} is stopped"
return 0
fi
# 检查pid是否存在
local pid=$(get_pid)
if [ ${pid} == "" ];then
echo "${app} is stopped, can't find pid on ${pidfile}"
exit 0
fi
# 停止该服务
if [ $i -eq $((timeout-1)) ]; then
kill -9 ${pid} &>/dev/null
else
kill ${pid} &>/dev/null
fi
# 检查该服务是否停止ok
check_pid
if [ $? -eq 0 ];then
# stop服务成功, 返回码为 0
echo "${app} stop ok"
exit 0
fi
# 服务未停止, 继续循环
sleep 1
done
# stop服务失败, 返回码为 非0
echo "stop timeout(${timeout}s)"
return 1
}
function update() {
echo "update service"
exit 0
}
function status(){
check_pid
local running=$?
if [ ${running} -ne 0 ];then
local pid=$(get_pid)
echo "${app} is started, pid=${pid}"
else
echo "${app} is stopped"
fi
exit 0
}
## internals
function get_pid() {
if [ -f $pidfile ];then
cat $pidfile
#pid=$(cat $pidfile | sed 's/ //g')
#(ps -fp $pid | grep $app &>/dev/null) && echo $pid
fi
}
function check_pid() {
pid=$(get_pid)
if [ "x_" != "x_${pid}" ]; then
running=$(ps -p ${pid}|grep -v "PID TTY" |wc -l)
return ${running}
fi
return 0
}
action=$1
case $action in
"start" )
# 启动服务
start
http_start
;;
"stop" )
# 停止服务
http_stop
stop
;;
"status" )
# 检查服务
status
;;
"update" )
# 更新操作
update
;;
* )
echo "unknown command"
exit 1
;;
esac