diff --git a/cloud-modules/cloud-modules-carData/pom.xml b/cloud-modules/cloud-modules-carData/pom.xml index c1ab988..53d679b 100644 --- a/cloud-modules/cloud-modules-carData/pom.xml +++ b/cloud-modules/cloud-modules-carData/pom.xml @@ -92,5 +92,9 @@ iotdb-session 0.13.1 + + com.muyu + cloud-common-rabbit + diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java index 6ee448e..50b42da 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/CarDataApplication.java @@ -1,5 +1,6 @@ package com.muyu.carData; +import com.muyu.carData.listener.MyListener; import com.muyu.common.security.annotation.EnableMyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -19,7 +20,8 @@ import javax.swing.*; public class CarDataApplication { public static void main(String[] args) { - SpringApplication.run(CarDataApplication.class,args); - System.out.println("caused: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;;caused: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;"); + SpringApplication application = new SpringApplication(CarDataApplication.class); + application.addListeners(new MyListener()); + application.run(args); } } diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java index 23b395b..bcf8999 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/config/kafkaconfig/KafkaConfig.java @@ -28,7 +28,7 @@ public class KafkaConfig { //生产者可用于缓冲等待发送到服务器的记录的总内存字节数 configs.put("buffer-memory",3554432); /** - *生产者producer要求leader节点在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化 + * ,用于控制发送记录在服务端的持久化 *acks=0,设置为0,则生产者producer将不会等待来自服务器的任何确认.该记录将立即添加到套接字(socket)缓冲区并视为已发送 * .在这种情况下,无法保证服务器已收到记录,并且重试配置(retries)将不会生效(因为客户端通常不会知道任何故障),每条记录返回的偏移量始终设置为-1. *acks=1,设置为1,leader节点会把记录写入本地日志,不需要等待所有follower节点完全确认就会立即应答producer.在这种情况下, diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java index 7e6fcb9..a661bfc 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/consumer/MyKafkaConsumer.java @@ -15,7 +15,7 @@ import org.springframework.stereotype.Component; import java.time.Duration; import java.util.Collection; -/** +/**卡夫卡消费者 * @Author:张腾 * @Package:com.muyu.carData.consumer * @Project:cloud-server-8 diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/CacheController.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/CacheController.java similarity index 97% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/CacheController.java rename to cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/CacheController.java index 436c63f..f2d2c53 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/CacheController.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/CacheController.java @@ -1,4 +1,4 @@ -package com.muyu.carData.testcontroller; +package com.muyu.carData.controller; import com.github.benmanes.caffeine.cache.Cache; import com.muyu.carData.config.cacheconfig.CaffeineConfig; diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/IotDBController.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/IotDBController.java similarity index 97% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/IotDBController.java rename to cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/IotDBController.java index d93c8d3..0becba4 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/IotDBController.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/IotDBController.java @@ -1,4 +1,4 @@ -package com.muyu.carData.testcontroller; +package com.muyu.carData.controller; import com.muyu.carData.config.lotdbconfig.IotDBSessionConfig; import lombok.extern.log4j.Log4j2; @@ -44,11 +44,13 @@ public class IotDBController { @GetMapping("/insertData/{insertSize}/{count}") public String insert(@PathVariable(name = "insertSize") int insertSize,@PathVariable(name = "count") int count) throws IoTDBConnectionException, StatementExecutionException { Session session = iotDBSessionConfig.iotSession(); + //schemaList 属性及类型 List schemaList = new ArrayList<>(); schemaList.add(new MeasurementSchema("id", TSDataType.INT32)); schemaList.add(new MeasurementSchema("name", TSDataType.TEXT)); schemaList.add(new MeasurementSchema("sex", TSDataType.TEXT)); + //tablet 封装数据 Tablet tablet = new Tablet("root.yang.baling", schemaList); //以当前时间戳作为插入的起始时间戳 diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/KafkaProducerController.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/KafkaProducerController.java similarity index 68% rename from cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/KafkaProducerController.java rename to cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/KafkaProducerController.java index 2dc6bb9..b167ef7 100644 --- a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/testcontroller/KafkaProducerController.java +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/controller/KafkaProducerController.java @@ -1,7 +1,6 @@ -package com.muyu.carData.testcontroller; +package com.muyu.carData.controller; import com.alibaba.fastjson.JSONObject; -import com.muyu.carData.pojo.Student; import lombok.extern.log4j.Log4j2; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; @@ -25,21 +24,15 @@ public class KafkaProducerController { @Autowired private KafkaProducer kafkaProducer; - private final String topicName = "test"; + private final String topicName = "carJsons"; - @GetMapping("/produceTest") - public String produceTest() { + @GetMapping("/producer") + public String produceTest(JSONObject data) { try { - Student stu = Student.builder().id(2) - .name("杨闪闪") - .sex("男") - .build(); - String stuStr = JSONObject.toJSONString(stu); log.info("Topic:{}", topicName); - log.info("Java对象:{}",stu); - log.info("转换为JSON:{}",stuStr); + log.info("转换为JSON:{}",data); //使用KafkaProducer发送消息 - ProducerRecord stringProducerRecord = new ProducerRecord<>(topicName, stuStr); + ProducerRecord stringProducerRecord = new ProducerRecord(topicName, data); kafkaProducer.send(stringProducerRecord); }catch (Exception e){ log.error("Producer写入Topic异常,异常信息是:{}",e.getMessage()); @@ -47,4 +40,6 @@ public class KafkaProducerController { return "消息发送成功"; } + + } diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/event/EsSaveEvent.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/event/EsSaveEvent.java new file mode 100644 index 0000000..f4d689f --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/event/EsSaveEvent.java @@ -0,0 +1,22 @@ +package com.muyu.carData.event; + +import com.alibaba.fastjson.JSONObject; +import org.springframework.context.ApplicationEvent; + +/**自定义事件 + * @Author:张腾 + * @Package:com.muyu.carData.event + * @Project:cloud-server-8 + * @name:EsSaveEvent + * @Date:2024/9/29 21:15 + */ +public class EsSaveEvent extends ApplicationEvent { + + private JSONObject data; + + + public EsSaveEvent(JSONObject source) { + super(source); + this.data = source; + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/CustomEventListener.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/CustomEventListener.java new file mode 100644 index 0000000..4d63af0 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/CustomEventListener.java @@ -0,0 +1,22 @@ +package com.muyu.carData.listener; + +import com.muyu.carData.event.EsSaveEvent; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +/** + * @Author:张腾 + * @Package:com.muyu.carData.listener + * @Project:cloud-server-8 + * @name:CustomEventListener + * @Date:2024/9/29 23:49 + */ +@Component +public class CustomEventListener { + + @EventListener + public void handMyEvent(EsSaveEvent event){ + //处理事件详情 + + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/MyListener.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/MyListener.java new file mode 100644 index 0000000..5bfcb26 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/listener/MyListener.java @@ -0,0 +1,20 @@ +package com.muyu.carData.listener; + +import com.muyu.carData.event.EsSaveEvent; +import lombok.extern.log4j.Log4j2; +import org.springframework.context.ApplicationListener; + +/**自定义监听器 + * @Author:张腾 + * @Package:com.muyu.carData.listener + * @Project:cloud-server-8 + * @name:MyListener + * @Date:2024/9/29 21:18 + */ +@Log4j2 +public class MyListener implements ApplicationListener { + @Override + public void onApplicationEvent(EsSaveEvent event) { + log.info("监听到自定义事件........"); + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/pulisher/CustomEventPublisher.java b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/pulisher/CustomEventPublisher.java new file mode 100644 index 0000000..2a32391 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/java/com/muyu/carData/pulisher/CustomEventPublisher.java @@ -0,0 +1,29 @@ +package com.muyu.carData.pulisher; + +import com.alibaba.fastjson.JSONObject; +import com.muyu.carData.event.EsSaveEvent; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Component; + +/**事件发布测试 + * @Author:张腾 + * @Package:com.muyu.carData.pulisher + * @Project:cloud-server-8 + * @name:CustomEventPublisher + * @Date:2024/9/29 23:51 + */ +@Log4j2 +@Component +@AllArgsConstructor +public class CustomEventPublisher { + + private ApplicationEventPublisher applicationEventPublisher; + + public void publish(JSONObject data){ + EsSaveEvent esSaveEvent = new EsSaveEvent(data); + applicationEventPublisher.publishEvent(esSaveEvent); + log.info("事件发布成功 - 消息是:{}",data); + } +} diff --git a/cloud-modules/cloud-modules-carData/src/main/resources/banner.txt b/cloud-modules/cloud-modules-carData/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-carData/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-carData/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..8bc6afd --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/resources/bootstrap.yml @@ -0,0 +1,63 @@ +# Tomcat +server: + port: 9702 + +# nacos线上地址 +nacos: + addr: 159.75.188.178:8848 + user-name: nacos + password: nacos + namespace: eight +# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all +# Spring +spring: + iotdb: + username: root + password: root + ip: 60.204.221.52 + port: 6667 + maxSize: 100 + fetchSize: 10000 + main: + allow-bean-definition-overriding: true + application: + # 应用名称 + name: cloud-carData + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # xxl-job 配置文件 + - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # rabbit 配置文件 + - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.system.mapper: DEBUG diff --git a/cloud-modules/cloud-modules-carData/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-carData/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..8f19f70 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-carData/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-carData/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..260f145 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-carData/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-carData/src/main/resources/logback/test.xml new file mode 100644 index 0000000..260f145 --- /dev/null +++ b/cloud-modules/cloud-modules-carData/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + +