diff --git a/Dockerfile b/Dockerfile index 3fb8452..d8b9163 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,8 @@ -FROM registry.ap-northeast-1.aliyuncs.com/southwave/jdk17-template:latest +# FROM registry.ap-northeast-1.aliyuncs.com/southwave/jdk17-template:latest +FROM amazoncorretto:17-alpine +# 安装 fontconfig 和 DejaVu 字体 (这是一个通用且免费的字体包) +RUN apk --no-cache add fontconfig ttf-dejavu + WORKDIR /app COPY target/data-center-receiver.jar app.jar EXPOSE 8200 diff --git a/pom.xml b/pom.xml index 54f3280..79cad35 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.2.12 + 3.5.7 com.techsor @@ -14,10 +14,11 @@ TECHSOR_dataCenter_receiver 17 - 029530100103.dkr.ecr.ap-northeast-1.amazonaws.com + 126588786019.dkr.ecr.ap-northeast-1.amazonaws.com 029530100103.dkr.ecr.ap-northeast-1.amazonaws.com - pf-receiver-stg - 4.2.2.Final + spf-receiver-stg + spf-receiver + 4.2.9.Final @@ -326,7 +327,7 @@ org.apache.tomcat.embed tomcat-embed-core - 10.1.42 + 10.1.49 org.springframework.boot @@ -342,9 +343,13 @@ org.springframework.integration spring-integration-mqtt - 5.5.1 + 6.5.3 - + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + org.springframework.boot @@ -382,25 +387,42 @@ com.mysql mysql-connector-j - 9.3.0 + 9.5.0 org.projectlombok lombok - - - io.joynr.java.messaging.mqtt - paho-mqtt-client - 1.14.2 - + + + + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + org.apache.commons commons-text - 1.13.1 + 1.15.0 + + + org.apache.commons + commons-lang3 + 3.20.0 + + + + org.jetbrains.kotlin + kotlin-stdlib + 2.2.21 + + + at.yawk.lz4 + lz4-java + 1.10.2 @@ -536,13 +569,13 @@ ch.qos.logback logback-classic - 1.5.18 + 1.5.21 compile ch.qos.logback logback-core - 1.5.18 + 1.5.21 compile @@ -552,6 +585,18 @@ 33.4.8-jre + + + org.apache.logging.log4j + log4j-core + 2.25.3 + + + org.apache.logging.log4j + log4j-api + 2.25.3 + + @@ -588,12 +633,12 @@ - - + + - + @@ -615,7 +660,7 @@ - ${aws.ecr.registryTest}/aeon/s${aws.ecr.repository}:latest + ${aws.ecr.registryTest}/aeon/${aws.ecr.repositoryTest}:latest ${aws.ecr.registry} ${project.basedir}/Dockerfile diff --git a/src/main/java/com/techsor/datacenter/receiver/config/DataCenterEnvConfig.java b/src/main/java/com/techsor/datacenter/receiver/config/DataCenterEnvConfig.java index 5885559..567247a 100644 --- a/src/main/java/com/techsor/datacenter/receiver/config/DataCenterEnvConfig.java +++ b/src/main/java/com/techsor/datacenter/receiver/config/DataCenterEnvConfig.java @@ -26,7 +26,10 @@ public class DataCenterEnvConfig { @Value("${data.center.ioserver_process.api:#{'/v1/generic/ioserver_process'}}") private String processIoserverUrl; - @Value("${data.center.ioserver_process.api:#{'/v1/generic/st150_process'}}") + @Value("${data.center.trendLog.api:#{'/v1/generic/trendLog_process'}}") + private String processTrendLogUrl; + + @Value("${data.center.st150_process.api:#{'/v1/generic/st150_process'}}") private String processGW150Url; @Value("${data.center.zaiot_process.api:#{'/v1/generic/zaiot_process'}}") @@ -69,6 +72,10 @@ public class DataCenterEnvConfig { return apiAddress+processIoserverUrl; } + public String getProcessTrendLogUrl() { + return apiAddress+processTrendLogUrl; + } + public void setProcessIoserverUrl(String processIoserverUrl) { this.processIoserverUrl = processIoserverUrl; } diff --git a/src/main/java/com/techsor/datacenter/receiver/service/DataTransService.java b/src/main/java/com/techsor/datacenter/receiver/service/DataTransService.java index f784f30..c058ab7 100644 --- a/src/main/java/com/techsor/datacenter/receiver/service/DataTransService.java +++ b/src/main/java/com/techsor/datacenter/receiver/service/DataTransService.java @@ -80,6 +80,10 @@ public class DataTransService { //单独处理ST-150网关数据 logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessIoserverUrl()); response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getGW150ProcessUrl(), jsonParams); + }else if (isTrendLog(rawJson)){ + //单独处理TrendLog数据 + logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessTrendLogUrl()); + response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getProcessTrendLogUrl(), jsonParams); }else{ logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessApiUrl()); response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getProcessApiUrl(), jsonParams); @@ -138,4 +142,23 @@ public class DataTransService { return hasD && hasTs; } + /** + * 检查JSON字符串是否包含特定的字段,用于判断是否符合GW150数据格式 + * + * @param jsonStr 待检查的JSON字符串 + * @return 如果JSON字符串同时包含字段"Instance"、"DeviceId"和"log_buffer",则返回true,否则返回false + */ + private Boolean isTrendLog(String jsonStr){ + // 解析JSON字符串为JsonObject,以便进行字段检查 + JsonObject json = JsonParser.parseString(jsonStr).getAsJsonObject(); + + // 检查JSON对象中是否包含字段"Instance" + boolean hasInstance = json.has("Instance"); + // 检查JSON对象中是否包含字段"DeviceId" + boolean hasDeviceId = json.has("DeviceId"); + // 检查JSON对象中是否包含字段"hasLogBuffer" + boolean hasLogBuffer = json.has("log_buffer"); + + return hasInstance && hasDeviceId && hasLogBuffer; + } } diff --git a/src/main/java/com/techsor/datacenter/receiver/service/impl/MQTTServiceImpl.java b/src/main/java/com/techsor/datacenter/receiver/service/impl/MQTTServiceImpl.java index c66e2ae..3cb4c2b 100644 --- a/src/main/java/com/techsor/datacenter/receiver/service/impl/MQTTServiceImpl.java +++ b/src/main/java/com/techsor/datacenter/receiver/service/impl/MQTTServiceImpl.java @@ -218,7 +218,7 @@ class MqttConsumer { } adapter.setCompletionTimeout(5000); - adapter.setRecoveryInterval(5000); +// adapter.set(5000); adapter.setConverter(new DefaultPahoMessageConverter()); if (!Objects.nonNull(config.getQos())){ adapter.setQos(1);