Skip to content

Commit

Permalink
Merge branch 'refs/heads/feature'
Browse files Browse the repository at this point in the history
  • Loading branch information
guoyuanlu committed Aug 5, 2024
2 parents 72996e9 + 2590344 commit 6dbbfa3
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 18 deletions.
7 changes: 5 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,15 @@ ARG HOME=/app
ARG LOG=$HOME/logs
ENV WORKDIR $HOME
ENV START_DELAY_SECS 1
ENV JVM_DEBUG "n"
ENV JVM_XMS "1g"
ENV JVM_XMX "1g"
ENV JVM_XMN "512m"
ENV JVM_XSS "256k"
ENV JVM_MS "128m"
ENV JVM_MMS "320m"
ENV USE_HEAP_DUMP "y"
ENV USE_GC_LOG "y"
ENV USE_LARGE_PAGES "n"
ENV DEBUG "n"
ENV SPRING_PROFILES_ACTIVE "dev"
ENV SERVER_PORT "8080"
ENV MANAGEMENT_SERVER_PORT "9080"
Expand Down
42 changes: 35 additions & 7 deletions docker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,41 @@
#!/bin/bash

JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC"
JAVA_OPTS="${JAVA_OPTS} -server -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${WORKDIR}/logs/java_heapdump.hprof"
JAVA_OPTS="${JAVA_OPTS} -XX:-UseLargePages"
if [[ "${JVM_DEBUG}" == "y" ]]; then
JAVA_OPTS="${JAVA_OPTS} -server -XX:+AlwaysPreTouch -XX:-DisplayVMOutput -XX:+PrintFlagsFinal"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow"
JAVA_OPTS="${JAVA_OPTS} -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+UnlockCommercialFeatures"
JAVA_OPTS="${JAVA_OPTS} -XX:+FlightRecorder -XX:+DebugNonSafepoints -XX:+SafepointTimeout -XX:SafepointTimeoutDelay=500"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1"
JAVA_OPTS="${JAVA_OPTS} -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xss${JVM_XSS} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:ConcGCThreads=6 -XX:ParallelGCThreads=8"

if [[ "${USE_G1_GC}" == "y" ]]; then
echo "G1 garbage collection is enabled."
JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC -XX:G1LogLevel=finest -XX:G1NewSizePercent=50 -XX:MaxGCPauseMillis=200"
JAVA_OPTS="${JAVA_OPTS} -XX:InitiatingHeapOccupancyPercent=45 -XX:G1MixedGCLiveThresholdPercent=65"
fi

if [[ "${USE_HEAP_DUMP}" == "y" ]]; then
echo "Heap dump path is '${WORKDIR}/logs/jvm_heap_dump.hprof'."
JAVA_OPTS="${JAVA_OPTS} -XX:HeapDumpPath=${WORKDIR}/logs/jvm_heap_dump.hprof -XX:+HeapDumpOnOutOfMemoryError"
fi

if [[ "${USE_GC_LOG}" == "y" ]]; then
echo "GC log path is '/dev/shm/logs/jvm_gc.log'."
JAVA_OPTS="${JAVA_OPTS} -XX:LogFile=/dev/shm/logs/jvm_gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
JAVA_OPTS="${JAVA_OPTS} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10m"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintReferenceGC -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime"
fi

if [[ "${USE_LARGE_PAGES}" == "y" ]]; then
echo "Use large pages."
JAVA_OPTS="${JAVA_OPTS} -XX:+UseLargePages"
fi

if [[ "${DEBUG}" == "y" ]]; then
echo "Attach to remote JVM using port 5005."
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n"
fi

echo "The application will start in ${START_DELAY_SECS}s..."
echo "The application will start in ${START_DELAY_SECS}s."
sleep ${START_DELAY_SECS}
exec java $JAVA_OPTS -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom "org.springframework.boot.loader.JarLauncher" "$@"
exec java $JAVA_OPTS -noverify -Djava.security.egd=file:/dev/./urandom "org.springframework.boot.loader.JarLauncher" "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.ylzl.eden.spring.integration.xxljob.XxlJobRegister;

/**
* 用户信息离线处理
Expand All @@ -32,7 +31,8 @@
@Component
public class UserJobHandler {

@XxlJobRegister(desc = "用户信息离线处理", author = "梦想歌", cron = "30 * * * * ?") // 自动注册到XxlJob
// 目前 XxlJob2.x 开源版本扩展性特别差,暂时不支持 自动注册到 XxlJob
// @XxlJobRegister(desc = "用户信息离线处理", author = "梦想歌", cron = "30 * * * * ?")
@XxlJob(value = "userJobHandler", init = "init", destroy = "destroy")
public void jobHandler() throws Exception {
XxlJobHelper.log("XXL-JOB, Hello World.");
Expand Down
42 changes: 35 additions & 7 deletions eden-demo-cola-start/src/main/docker/jib/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,41 @@
#!/bin/bash

JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC"
JAVA_OPTS="${JAVA_OPTS} -server -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${WORKDIR}/logs/java_heapdump.hprof"
JAVA_OPTS="${JAVA_OPTS} -XX:-UseLargePages"
if [[ "${JVM_DEBUG}" == "y" ]]; then
JAVA_OPTS="${JAVA_OPTS} -server -XX:+AlwaysPreTouch -XX:-DisplayVMOutput -XX:+PrintFlagsFinal"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow"
JAVA_OPTS="${JAVA_OPTS} -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+UnlockCommercialFeatures"
JAVA_OPTS="${JAVA_OPTS} -XX:+FlightRecorder -XX:+DebugNonSafepoints -XX:+SafepointTimeout -XX:SafepointTimeoutDelay=500"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1"
JAVA_OPTS="${JAVA_OPTS} -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xss${JVM_XSS} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:ConcGCThreads=6 -XX:ParallelGCThreads=8"

if [[ "${USE_G1_GC}" == "y" ]]; then
echo "G1 garbage collection is enabled."
JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC -XX:G1LogLevel=finest -XX:G1NewSizePercent=50 -XX:MaxGCPauseMillis=200"
JAVA_OPTS="${JAVA_OPTS} -XX:InitiatingHeapOccupancyPercent=45 -XX:G1MixedGCLiveThresholdPercent=65"
fi

if [[ "${USE_HEAP_DUMP}" == "y" ]]; then
echo "Heap dump path is '${WORKDIR}/logs/jvm_heap_dump.hprof'."
JAVA_OPTS="${JAVA_OPTS} -XX:HeapDumpPath=${WORKDIR}/logs/jvm_heap_dump.hprof -XX:+HeapDumpOnOutOfMemoryError"
fi

if [[ "${USE_GC_LOG}" == "y" ]]; then
echo "GC log path is '/dev/shm/logs/jvm_gc.log'."
JAVA_OPTS="${JAVA_OPTS} -XX:LogFile=/dev/shm/logs/jvm_gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
JAVA_OPTS="${JAVA_OPTS} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10m"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintReferenceGC -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime"
fi

if [[ "${USE_LARGE_PAGES}" == "y" ]]; then
echo "Use large pages."
JAVA_OPTS="${JAVA_OPTS} -XX:+UseLargePages"
fi

if [[ "${DEBUG}" == "y" ]]; then
echo "Attach to remote JVM using port 5005."
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n"
fi

echo "The application will start in ${START_DELAY_SECS}s..."
echo "The application will start in ${START_DELAY_SECS}s."
sleep ${START_DELAY_SECS}
exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "org.ylzl.eden.demo.ColaApplication" "$@"
exec java ${JAVA_OPTS} -noverify -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "org.ylzl.eden.demo.ColaApplication" "$@"

0 comments on commit 6dbbfa3

Please sign in to comment.