diff --git a/deploy.sh b/deploy.sh
index ed116433..67f2e611 100644
--- a/deploy.sh
+++ b/deploy.sh
@@ -25,7 +25,7 @@
#
# @author jaysunxiao
# @version 1.0
- */
+
if [ $# -lt 1 ]; then
echo "deploy.sh脚本使用错误,命令参数不合法"
@@ -54,9 +54,22 @@ function waitAllProcessesExit() {
done
}
+function waitInfoLog() {
+ local infoLog
+ while true; do
+ infoLog=$(ls ./log | grep info)
+ if [ -z "${infoLog}" ]; then
+ echo "正在等待info.log创建"
+ sleep 1
+ else
+ return
+ fi
+ done
+}
+
# 停止所有进程,不包括login
function stop() {
- echo "-------------------------------------------------------------------------------------------------------------------------------------->stop"
+ echo "########################## Ⅰ stop ##########################"
local pids
pids=$(jps | grep ${1} | awk '{print $1}' | paste -d " " -s)
@@ -65,110 +78,49 @@ function stop() {
return
fi
- echo "----------------------------------------------------------------------------------------->cpu"
+ echo "************************** cpu **************************"
uptime
echo "注:"
echo "uptime查看cpu的负载情况,load avarage分别是1分钟,5分钟,15分钟内系统的load值"
echo "一般load值不大于3,我们就认为它的负载是正常的,大于了3就要想办法降低系统的负载"
- echo "----------------------------------------------------------------------------------------->内存"
+ echo "************************** 内存 **************************"
free -m
echo "注:"
echo "free查看内存的使用情况,重点关注swap内存使用,swap大表示物理内存不够用,这时候容易导致OOM异常"
- echo "----------------------------------------------------------------------------------------->磁盘"
+ echo "************************** 磁盘 **************************"
df -h
echo "注:"
echo "df查看磁盘的使用情况,应该特别关注日志和数据库的挂载路径的使用情况"
- echo "----------------------------------------------------------------------------------------->网络"
+ echo "************************** 网络 **************************"
sar -n DEV 1 2
echo "注:"
echo "sar查看网络的使用情况,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。"
- echo "----------------------------------------------------------------------------------------->系统日志"
+ echo "**************************系统日志**************************"
dmesg | tail -n 20
echo "注:"
echo "df查看系统日志的最后20行,主要看有没有严重的系统问题"
- echo "----------------------------------------------------------------------------------------->jmap实例数量"
+ echo "**************************jmap实例**************************"
for pid in ${pids}; do
echo "${pid}->进程的class实例数量前20信息"
jmap -histo ${pid} | head -n 20
echo -e "\n"
done
- echo "----------------------------------------------------------------------------------------->开始执行终止Java进程命令"
+ echo "********************开始执行终止Java进程命令********************"
echo "kill -15 $pids"
kill -15 ${pids}
waitAllProcessesExit ${1}
}
-# 启动一个java进程,必须指定jar路径和jar名称
-# -n为notEmpty,-z为empty
-function start() {
- echo "-------------------------------------------------------------------------------------------------------------------------------------->start"
- local jarPath=${1}
- local logPath=${2}
-
- if [ -z "${jarPath}" ]; then
- echo "启动的路径不能为空"
- echo "usage: sh deploy.sh start jarPath logPath"
- exit 1
- fi
-
- if [ -z "${logPath}" ]; then
- echo "启动的jar包名称不能为空"
- echo "usage: sh deploy.sh start jarPath logPath"
- exit 1
- fi
-
- mkdir -p "${logPath}/log"
- cd ${logPath}
-
- # -XX:+AlwaysPreTouch,并置零内存页面,可能令得启动时慢上一点,但后面访问时会更流畅,比如页面会连续分配
- # 输出到文件 >> output.log 2>&1 &
- nohup java -XX:+UseG1GC -XX:InitialHeapSize=4g -XX:MaxHeapSize=4g -XX:MaxMetaspaceSize=256m -XX:AutoBoxCacheMax=20000 -XX:+UseStringDeduplication -XX:+HeapDumpOnOutOfMemoryError -Djdk.attach.allowAttachSelf=true -Dspring.profiles.active=pro -Dfile.encoding=UTF-8 -jar ${jarPath} >/dev/null 2>&1 &
-
- # 如果没有info的log,则等待一秒钟
- local infoLog
- infoLog=$(ls ./log | grep info)
- if [ -z "${infoLog}" ]; then
- sleep 1
- fi
-
- if [ -z "${3}" ]; then
- tailf log/info.log
- else
- sleep 4
- local jarName=${jarPath##*/}
- local runningProcesses
- runningProcesses=$(jps -lvm | grep ${jarName})
- echo "----------------------------------------------------------------------------------------->jps信息"
- echo "${runningProcesses}"
-
- sleep 4
- echo "----------------------------------------------------------------------------------------->jstat编译统计信息"
- local pids
- pids=$(jps | grep ${jarName} | awk '{print $1}' | paste -d " " -s)
- for pid in ${pids}; do
- echo "${pid}->进程的编译统计信息"
- jstat -compiler ${pid}
- echo -e "\n"
- done
-
- sleep 6
- echo "----------------------------------------------------------------------------------------->启动信息"
- tail -n 40 log/info.log
-
- exit 0
- fi
-}
-
# 更新jar包
function update() {
- echo "-------------------------------------------------------------------------------------------------------------------------------------->update"
+ echo "######################### Ⅱ update ########################"
local jarPath=${1}
if [ -z "${jarPath}" ]; then
@@ -205,8 +157,65 @@ function update() {
echo "${fileInfo}"
}
+# 启动一个java进程,必须指定jar路径和jar名称
+# -n为notEmpty,-z为empty
+function start() {
+ echo "######################### Ⅲ start #########################"
+ local jarPath=${1}
+ local logPath=${2}
+
+ if [ -z "${jarPath}" ]; then
+ echo "启动的路径不能为空"
+ echo "usage: sh deploy.sh start jarPath logPath"
+ exit 1
+ fi
+
+ if [ -z "${logPath}" ]; then
+ echo "启动的jar包名称不能为空"
+ echo "usage: sh deploy.sh start jarPath logPath"
+ exit 1
+ fi
+
+ mkdir -p "${logPath}/log"
+ cd ${logPath}
+
+ # -XX:+AlwaysPreTouch,并置零内存页面,可能令得启动时慢上一点,但后面访问时会更流畅,比如页面会连续分配
+ # 输出到文件 >> output.log 2>&1 &
+ nohup java -XX:+UseG1GC -XX:InitialHeapSize=4g -XX:MaxHeapSize=4g -XX:MaxMetaspaceSize=256m -XX:AutoBoxCacheMax=20000 -XX:+UseStringDeduplication -XX:+HeapDumpOnOutOfMemoryError -Djdk.attach.allowAttachSelf=true -Dspring.profiles.active=pro -Dfile.encoding=UTF-8 -jar ${jarPath} >/dev/null 2>&1 &
+
+ # 如果没有info的log,则一直等待
+ waitInfoLog
+
+ if [ -z "${3}" ]; then
+ tailf log/info.log
+ else
+ sleep 4
+ local jarName=${jarPath##*/}
+ local runningProcesses
+ runningProcesses=$(jps -lvm | grep ${jarName})
+ echo "**************************jps信息**************************"
+ echo "${runningProcesses}"
+
+ sleep 4
+ echo "************************jstat编译统计信息************************"
+ local pids
+ pids=$(jps | grep ${jarName} | awk '{print $1}' | paste -d " " -s)
+ for pid in ${pids}; do
+ echo "${pid}->进程的编译统计信息"
+ jstat -compiler ${pid}
+ echo -e "\n"
+ done
+
+ sleep 6
+ echo "**************************启动日志**************************"
+ tail -n 40 log/info.log
+
+ exit 0
+ fi
+}
+
+
function stopUpdateStart() {
- echo "-------------------------------------------------------------------------------------------------------------------------------------->stopUpdateStart"
local jarPath=${1}
local logPath=${2}
@@ -229,15 +238,41 @@ function stopUpdateStart() {
# 先停止
stop ${jarName}
+ echo
+ echo
+ echo
# 再更新
update ${jarPath}
+ echo
+ echo
+ echo
# 最后启动
start ${jarPath} ${logPath} ${3}
}
# Linux性能调优
function optimizeLinux() {
- echo "-------------------------------------------------------------------------------------------------------------------------------------->性能调优"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+ echo "性能调优预留方法"
}
# 立即执行调优
optimizeLinux
diff --git a/event/src/main/java/com/zfoo/event/model/anno/EventReceiver.java b/event/src/main/java/com/zfoo/event/model/anno/EventReceiver.java
index 360a79ee..35ba9a6e 100644
--- a/event/src/main/java/com/zfoo/event/model/anno/EventReceiver.java
+++ b/event/src/main/java/com/zfoo/event/model/anno/EventReceiver.java
@@ -16,7 +16,7 @@ package com.zfoo.event.model.anno;
import java.lang.annotation.*;
/**
- * 接受时间注解
+ * 接收事件的注解
*
* @author jaysunxiao
* @version 3.0
diff --git a/storage/src/test/resources/application.xml b/storage/src/test/resources/application.xml
index 41db523d..b939ea6b 100644
--- a/storage/src/test/resources/application.xml
+++ b/storage/src/test/resources/application.xml
@@ -50,7 +50,7 @@
-
+
\ No newline at end of file