Commit 76a431b8518fd9af37d8b2dc30f6d99b42be9837
1 parent
a7eeacd5
```
feat(mqtt): 重构MQTT服务为MQTT代理并集成Redis和Vert.x - 将spring.application.name从mqtt-service改为mqtt-agent - 升级Vert.x版本从4.5.10到4.5.22 - 重命名VerticleLifeTime为VerticleLifeCycle并移至config包 - 移除Lombok依赖并手动实现getter/setter方法 - 更新全局异常处理器日志实现 ```
Showing
10 changed files
with
85 additions
and
44 deletions
mqtt-boot/src/main/resources/application.properties
| 1 | -spring.application.name=mqtt-service | |
| 1 | +spring.application.name=mqtt-agent | |
| 2 | 2 | spring.cloud.nacos.discovery.enabled=true |
| 3 | 3 | spring.cloud.nacos.discovery.group=MICROSERVICE |
| 4 | 4 | spring.cloud.nacos.discovery.server-addr=nacos.diligrp.com:8848 |
| ... | ... | @@ -9,3 +9,12 @@ spring.cloud.nacos.config.server-addr=nacos.diligrp.com:8848 |
| 9 | 9 | spring.cloud.nacos.config.namespace=2267e673-b41f-458d-9643-2a03e4fd92fb |
| 10 | 10 | spring.config.import[0]=nacos:${spring.application.name}.properties |
| 11 | 11 | spring.config.import[1]=nacos:${spring.application.name}-${spring.profiles.active}.properties |
| 12 | + | |
| 13 | + | |
| 14 | +spring.data.redis.host=redis.diligrp.com | |
| 15 | +spring.data.redis.port=6379 | |
| 16 | +spring.data.redis.database=12 | |
| 17 | +#spring.data.redis.username= | |
| 18 | +#spring.data.redis.password= | |
| 19 | +spring.data.redis.connect-timeout=15000 | |
| 20 | +spring.data.redis.timeout=30000 | ... | ... |
mqtt-core/pom.xml
| ... | ... | @@ -15,10 +15,6 @@ |
| 15 | 15 | </parent> |
| 16 | 16 | <dependencies> |
| 17 | 17 | <dependency> |
| 18 | - <groupId>org.projectlombok</groupId> | |
| 19 | - <artifactId>lombok</artifactId> | |
| 20 | - </dependency> | |
| 21 | - <dependency> | |
| 22 | 18 | <groupId>org.springframework.boot</groupId> |
| 23 | 19 | <artifactId>spring-boot-starter-web</artifactId> |
| 24 | 20 | </dependency> | ... | ... |
mqtt-core/src/main/java/com/diligrp/mqtt/core/config/GlobalExceptionHandler.java
| ... | ... | @@ -6,7 +6,8 @@ import com.diligrp.mqtt.core.message.Message; |
| 6 | 6 | import com.fasterxml.jackson.databind.exc.InvalidFormatException; |
| 7 | 7 | import jakarta.validation.ConstraintViolation; |
| 8 | 8 | import jakarta.validation.ConstraintViolationException; |
| 9 | -import lombok.extern.slf4j.Slf4j; | |
| 9 | +import org.slf4j.Logger; | |
| 10 | +import org.slf4j.LoggerFactory; | |
| 10 | 11 | import org.springframework.context.support.DefaultMessageSourceResolvable; |
| 11 | 12 | import org.springframework.http.converter.HttpMessageNotReadableException; |
| 12 | 13 | import org.springframework.validation.BindException; |
| ... | ... | @@ -25,8 +26,9 @@ import java.util.stream.Collectors; |
| 25 | 26 | * 统一异常处理器 |
| 26 | 27 | */ |
| 27 | 28 | @RestControllerAdvice |
| 28 | -@Slf4j | |
| 29 | 29 | public class GlobalExceptionHandler { |
| 30 | + | |
| 31 | + private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); | |
| 30 | 32 | /** |
| 31 | 33 | * 处理业务异常 |
| 32 | 34 | */ | ... | ... |
mqtt-core/src/main/java/com/diligrp/mqtt/core/config/MqttProperties.java deleted
100644 → 0
| 1 | -package com.diligrp.mqtt.core.config; | |
| 2 | - | |
| 3 | -import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 4 | - | |
| 5 | -/** | |
| 6 | - * @Author: zhangmeiyang | |
| 7 | - * @CreateTime: 2025-12-29 17:41 | |
| 8 | - * @Version: todo | |
| 9 | - */ | |
| 10 | -@ConfigurationProperties(prefix = "mqtt") | |
| 11 | -public class MqttProperties { | |
| 12 | - private String host; | |
| 13 | - private Integer port; | |
| 14 | - private String username; | |
| 15 | - private String password; | |
| 16 | -} |
mqtt-core/src/main/java/com/diligrp/mqtt/core/exception/MqttServiceException.java
| ... | ... | @@ -3,12 +3,10 @@ package com.diligrp.mqtt.core.exception; |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 5 | import com.diligrp.mqtt.core.config.MessageConfirmType; |
| 6 | -import lombok.Getter; | |
| 7 | 6 | |
| 8 | 7 | /** |
| 9 | 8 | * 所有模块异常类的基类 |
| 10 | 9 | */ |
| 11 | -@Getter | |
| 12 | 10 | public class MqttServiceException extends RuntimeException { |
| 13 | 11 | /** |
| 14 | 12 | * 错误码 |
| ... | ... | @@ -71,4 +69,19 @@ public class MqttServiceException extends RuntimeException { |
| 71 | 69 | return stackTrace ? super.fillInStackTrace() : this; |
| 72 | 70 | } |
| 73 | 71 | |
| 72 | + public int getCode() { | |
| 73 | + return code; | |
| 74 | + } | |
| 75 | + | |
| 76 | + public void setCode(int code) { | |
| 77 | + this.code = code; | |
| 78 | + } | |
| 79 | + | |
| 80 | + public boolean isStackTrace() { | |
| 81 | + return stackTrace; | |
| 82 | + } | |
| 83 | + | |
| 84 | + public void setStackTrace(boolean stackTrace) { | |
| 85 | + this.stackTrace = stackTrace; | |
| 86 | + } | |
| 74 | 87 | } | ... | ... |
mqtt-core/src/main/java/com/diligrp/mqtt/core/message/Message.java
| 1 | 1 | package com.diligrp.mqtt.core.message; |
| 2 | 2 | |
| 3 | 3 | import com.diligrp.mqtt.core.config.MessageConfirmType; |
| 4 | -import lombok.Getter; | |
| 5 | -import lombok.Setter; | |
| 6 | 4 | |
| 7 | -@Setter | |
| 8 | -@Getter | |
| 9 | 5 | public class Message<T> { |
| 10 | 6 | private Integer code; |
| 11 | 7 | private String message; |
| ... | ... | @@ -35,4 +31,28 @@ public class Message<T> { |
| 35 | 31 | result.message = message; |
| 36 | 32 | return result; |
| 37 | 33 | } |
| 34 | + | |
| 35 | + public Integer getCode() { | |
| 36 | + return code; | |
| 37 | + } | |
| 38 | + | |
| 39 | + public void setCode(Integer code) { | |
| 40 | + this.code = code; | |
| 41 | + } | |
| 42 | + | |
| 43 | + public String getMessage() { | |
| 44 | + return message; | |
| 45 | + } | |
| 46 | + | |
| 47 | + public void setMessage(String message) { | |
| 48 | + this.message = message; | |
| 49 | + } | |
| 50 | + | |
| 51 | + public T getData() { | |
| 52 | + return data; | |
| 53 | + } | |
| 54 | + | |
| 55 | + public void setData(T data) { | |
| 56 | + this.data = data; | |
| 57 | + } | |
| 38 | 58 | } | ... | ... |
mqtt-core/src/main/java/com/diligrp/mqtt/core/message/PageQuery.java
| 1 | 1 | package com.diligrp.mqtt.core.message; |
| 2 | 2 | |
| 3 | 3 | import jakarta.validation.constraints.NotNull; |
| 4 | -import lombok.Getter; | |
| 5 | -import lombok.Setter; | |
| 6 | 4 | |
| 7 | 5 | /** |
| 8 | 6 | * @Author: zhangmeiyang |
| 9 | 7 | * @CreateTime: 2025-11-05 15:57 |
| 10 | 8 | * @Version: todo |
| 11 | 9 | */ |
| 12 | -@Getter | |
| 13 | -@Setter | |
| 14 | 10 | public abstract class PageQuery { |
| 15 | 11 | /** |
| 16 | 12 | * 页码 |
| ... | ... | @@ -22,4 +18,20 @@ public abstract class PageQuery { |
| 22 | 18 | */ |
| 23 | 19 | @NotNull(groups = {Valid.Read.class}) |
| 24 | 20 | protected Integer pageSize; |
| 21 | + | |
| 22 | + public Integer getPageNumber() { | |
| 23 | + return pageNumber; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public void setPageNumber(Integer pageNumber) { | |
| 27 | + this.pageNumber = pageNumber; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public Integer getPageSize() { | |
| 31 | + return pageSize; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public void setPageSize(Integer pageSize) { | |
| 35 | + this.pageSize = pageSize; | |
| 36 | + } | |
| 25 | 37 | } | ... | ... |
mqtt-vertx/pom.xml
| ... | ... | @@ -20,6 +20,14 @@ |
| 20 | 20 | <artifactId>mqtt-core</artifactId> |
| 21 | 21 | <version>${revision}</version> |
| 22 | 22 | </dependency> |
| 23 | + <dependency> | |
| 24 | + <groupId>io.vertx</groupId> | |
| 25 | + <artifactId>vertx-core</artifactId> | |
| 26 | + </dependency> | |
| 27 | + <dependency> | |
| 28 | + <groupId>io.vertx</groupId> | |
| 29 | + <artifactId>vertx-mqtt</artifactId> | |
| 30 | + </dependency> | |
| 23 | 31 | </dependencies> |
| 24 | 32 | |
| 25 | 33 | </project> | ... | ... |
mqtt-vertx/src/main/java/com/diligrp/mqtt/vertx/VerticleLifeTime.java renamed to mqtt-vertx/src/main/java/com/diligrp/mqtt/vertx/config/VerticleLifeCycle.java
| 1 | -package com.diligrp.mqtt.vertx; | |
| 1 | +package com.diligrp.mqtt.vertx.config; | |
| 2 | 2 | |
| 3 | 3 | import com.diligrp.mqtt.vertx.verticle.MqttVerticle; |
| 4 | 4 | import io.vertx.core.Vertx; |
| 5 | -import lombok.extern.slf4j.Slf4j; | |
| 6 | 5 | import org.springframework.beans.factory.DisposableBean; |
| 7 | 6 | import org.springframework.boot.CommandLineRunner; |
| 8 | 7 | import org.springframework.stereotype.Component; |
| 9 | 8 | |
| 10 | 9 | /** |
| 11 | - * @Author: zhangmeiyang | |
| 12 | - * @CreateTime: 2025-12-26 17:16 | |
| 13 | - * @Version: todo | |
| 10 | + * verticle生命周期 | |
| 11 | + * | |
| 12 | + * @author zhangmeiyang | |
| 13 | + * @date 2025/12/30 | |
| 14 | 14 | */ |
| 15 | 15 | @Component |
| 16 | -@Slf4j | |
| 17 | -public class VerticleLifeTime implements CommandLineRunner, DisposableBean { | |
| 16 | +public class VerticleLifeCycle implements CommandLineRunner, DisposableBean { | |
| 18 | 17 | |
| 19 | 18 | private final Vertx vertx; |
| 20 | 19 | |
| 21 | - public VerticleLifeTime(Vertx vertx) { | |
| 20 | + public VerticleLifeCycle(Vertx vertx) { | |
| 22 | 21 | this.vertx = vertx; |
| 23 | 22 | } |
| 24 | 23 | |
| 25 | 24 | @Override |
| 26 | 25 | public void run(String... args) throws Exception { |
| 27 | 26 | vertx.deployVerticle(new MqttVerticle()); |
| 28 | - log.info("MqttVerticle deployed"); | |
| 29 | 27 | } |
| 30 | 28 | |
| 31 | 29 | @Override |
| 32 | 30 | public void destroy() throws Exception { |
| 33 | 31 | vertx.close(); |
| 34 | - log.info("Vertx closed"); | |
| 35 | 32 | } |
| 36 | 33 | } | ... | ... |
pom.xml