diff --git a/pom.xml b/pom.xml
index 5f280e8..377bd69 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,8 +14,14 @@
2.6.13
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
-
+
+
net.sf.ehcache
ehcache
@@ -34,6 +40,11 @@
0.14.0-preview1
+
+ org.springframework.session
+ spring-session-data-redis
+
+
org.springframework.boot
spring-boot-starter-data-redis
@@ -133,12 +144,7 @@
8.0.11
runtime
-
-
-
-
-
-
+
org.springframework.kafka
diff --git a/src/main/java/com/hyc/config/RabbitmqConfig.java b/src/main/java/com/hyc/config/RabbitmqConfig.java
index f6a1f5f..64d6bca 100644
--- a/src/main/java/com/hyc/config/RabbitmqConfig.java
+++ b/src/main/java/com/hyc/config/RabbitmqConfig.java
@@ -15,12 +15,22 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration
public class RabbitmqConfig {
+ public static final String FAULT_EXCHANGE = "fault_exchange";
+ public static final String FAULT_MESSAGE_QUEUE = "fault_message_queue";
+
+ public static final String FAULT_MESSAGE_ROUTINGKEY = "fault_message_router";
public static final String INIT_CONNECT = "init_connect";
public static final String DISCONNECT_CONNECT = "disconnect_connect";
public static final String EXCHANGE_TOPICS_INFORM="exchange_topics_inform";
public static final String ROUTINGKEY_EMAIL="inform.#.email.#";
public static final String ROUTINGKEY_SMS="inform.#.sms.#";
+ public static final String CREATE_MQTT_CLIENT = "create_mqtt_client";
+
+ @Bean(CREATE_MQTT_CLIENT)
+ public Queue CREATE_MQTT_CLIENT(){
+ return new Queue(CREATE_MQTT_CLIENT);
+ }
@Bean(EXCHANGE_TOPICS_INFORM)
public Exchange EXCHANGE_TOPICS_INFORM(){
@@ -28,12 +38,12 @@ public class RabbitmqConfig {
return ExchangeBuilder.topicExchange(EXCHANGE_TOPICS_INFORM).durable(true).build();
}
- //声明QUEUE_INFORM_EMAIL队列
+ //声明INIT_CONNECT队列
@Bean(INIT_CONNECT)
public Queue QUEUE_INFORM_EMAIL(){
return new Queue(INIT_CONNECT);
}
- //声明QUEUE_INFORM_SMS队列
+ //声明DISCONNECT_CONNECT队列
@Bean(DISCONNECT_CONNECT)
public Queue QUEUE_INFORM_SMS(){
return new Queue(DISCONNECT_CONNECT);
@@ -51,4 +61,21 @@ public class RabbitmqConfig {
@Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange){
return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_SMS).noargs();
}
+
+ @Bean(FAULT_EXCHANGE)
+ public Exchange FAULT_EXCHANGE(){
+ //durable(true) 持久化,mq重启之后交换机还在
+ return ExchangeBuilder.topicExchange(FAULT_EXCHANGE).durable(true).build();
+ }
+
+ @Bean(FAULT_MESSAGE_QUEUE)
+ public Queue FAULT_MESSAGE_QUEUE(){
+ return new Queue(FAULT_MESSAGE_QUEUE);
+ }
+
+ @Bean
+ public Binding FAULT_MESSAGE_ROUTINGKEY(@Qualifier(FAULT_MESSAGE_QUEUE) Queue queue,
+ @Qualifier(FAULT_EXCHANGE) Exchange exchange){
+ return BindingBuilder.bind(queue).to(exchange).with(FAULT_MESSAGE_ROUTINGKEY).noargs();
+ }
}
diff --git a/src/main/java/com/hyc/runner/SyncCacheRunner.java b/src/main/java/com/hyc/config/SyncCacheRunner.java
similarity index 92%
rename from src/main/java/com/hyc/runner/SyncCacheRunner.java
rename to src/main/java/com/hyc/config/SyncCacheRunner.java
index ea79a03..9f42ee3 100644
--- a/src/main/java/com/hyc/runner/SyncCacheRunner.java
+++ b/src/main/java/com/hyc/config/SyncCacheRunner.java
@@ -1,10 +1,8 @@
-package com.hyc.runner;
+package com.hyc.config;
import com.alibaba.fastjson.JSONObject;
import com.hyc.domain.CacheCarEvent;
-import com.hyc.domain.SummarizeResp;
import com.hyc.kafka.demo.service.CarEventService;
-import com.hyc.service.SummarizeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
@@ -16,7 +14,7 @@ import org.springframework.stereotype.Component;
import java.util.List;
/**
- * 同步缓存Runner
+ * 项目启动同步本地缓存
*
* @author YouChe·He
* @ClassName: SyncCacheRunner
diff --git a/src/main/java/com/hyc/config/TransactionConfig.java b/src/main/java/com/hyc/config/TransactionConfig.java
new file mode 100644
index 0000000..84a2299
--- /dev/null
+++ b/src/main/java/com/hyc/config/TransactionConfig.java
@@ -0,0 +1,33 @@
+package com.hyc.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.transaction.support.TransactionTemplate;
+
+import javax.persistence.EntityManagerFactory;
+
+
+/**
+ * 手动事务配置
+ *
+ * @author YouChe·He
+ * @ClassName: TransactionConfig
+ * @Description: 手动事务配置
+ * @CreateTime: 2024/6/18 16:26
+ */
+@Configuration
+@EnableTransactionManagement
+public class TransactionConfig {
+ @Bean
+ public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
+ return new JpaTransactionManager(emf);
+ }
+
+ @Bean
+ public TransactionTemplate transactionTemplate(PlatformTransactionManager transactionManager) {
+ return new TransactionTemplate(transactionManager);
+ }
+}
diff --git a/src/main/java/com/hyc/controller/SummarizeController.java b/src/main/java/com/hyc/consumer/CreateMqttClientConsumer.java
similarity index 72%
rename from src/main/java/com/hyc/controller/SummarizeController.java
rename to src/main/java/com/hyc/consumer/CreateMqttClientConsumer.java
index f5768f3..018ecea 100644
--- a/src/main/java/com/hyc/controller/SummarizeController.java
+++ b/src/main/java/com/hyc/consumer/CreateMqttClientConsumer.java
@@ -1,72 +1,62 @@
-package com.hyc.controller;
+package com.hyc.consumer;
+import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.hyc.config.RabbitmqConfig;
import com.hyc.domain.ConnectionParameter;
-import com.hyc.domain.SummarizeResp;
-import com.hyc.kafka.demo.config.KafkaSendResultHandler;
-import com.hyc.result.Result;
-import com.hyc.service.SummarizeService;
import com.hyc.util.ConversionUtil;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
-import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Component;
import org.springframework.transaction.support.TransactionTemplate;
-import org.springframework.web.bind.annotation.*;
-import java.util.*;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.UUID;
/**
- * 创建Mqtt客户端
+ * 创建MQTT客户端消费者
*
* @author YouChe·He
- * @ClassName: CreateMqttClient
- * @Description: 创建Mqtt客户端
- * @CreateTime: 2024/5/31 10:25
+ * @ClassName: CreateMqttClientConsumer
+ * @Description: 创建MQTT客户端
+ * @CreateTime: 2024/6/18 15:45
*/
+@Component
@Slf4j
-@RestController
-@RequestMapping("/create")
-public class SummarizeController {
+public class CreateMqttClientConsumer {
@Autowired
- private SummarizeService summarizeService;
+ private TransactionTemplate transactionTemplate;
+ @Autowired
private KafkaTemplate