Selaa lähdekoodia

message-service 中处理来自 mq 的 AccessLog 和 RuntimeLog

reghao 8 kuukautta sitten
vanhempi
commit
8a5e8aa414

+ 38 - 0
message/message-service/src/main/java/cn/reghao/tnb/message/app/model/po/AccessLog.java

@@ -0,0 +1,38 @@
+package cn.reghao.tnb.message.app.model.po;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Map;
+
+/**
+ * @author reghao
+ * @date 2024-11-20 16:40:24
+ */
+@Setter
+@Getter
+public class AccessLog {
+    private String requestId;
+    // ms
+    private long requestTime;
+    private String targetRoute;
+    private String targetService;
+    private String requestUrl;
+    private String requestMethod;
+    private Map<String, String> requestHeaders;
+    private String requestBody;
+    private String remoteAddr;
+    private int remotePort;
+    private int statusCode;
+    private Map<String, String> responseHeaders;
+    private String responseBody;
+    // ms
+    private long responseTime;
+    // ms
+    private long executeTime;
+
+    public AccessLog() {
+        this.remoteAddr = "";
+        this.remotePort = 0;
+    }
+}

+ 21 - 0
message/message-service/src/main/java/cn/reghao/tnb/message/app/model/po/RuntimeLog.java

@@ -0,0 +1,21 @@
+package cn.reghao.tnb.message.app.model.po;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author reghao
+ * @date 2025-07-18 11:29:36
+ */
+@Setter
+@Getter
+public class RuntimeLog {
+    private String requestId;
+    private String app;
+    private String host;
+    private long timestamp;
+    private String level;
+    private String thread;
+    private String logger;
+    private String message;
+}

+ 1 - 1
message/message-service/src/main/java/cn/reghao/tnb/message/app/amqp/RabbitConfig.java → message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/RabbitConfig.java

@@ -1,4 +1,4 @@
-package cn.reghao.tnb.message.app.amqp;
+package cn.reghao.tnb.message.app.rabbit;
 
 /**
  * @author reghao

+ 4 - 3
message/message-service/src/main/java/cn/reghao/tnb/message/app/amqp/RabbitProducer.java → message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/c/RabbitProducers.java

@@ -1,6 +1,7 @@
-package cn.reghao.tnb.message.app.amqp;
+package cn.reghao.tnb.message.app.rabbit.c;
 
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
+import cn.reghao.tnb.message.app.rabbit.RabbitConfig;
 import com.rabbitmq.client.Channel;
 import com.rabbitmq.client.Connection;
 import com.rabbitmq.client.ConnectionFactory;
@@ -12,11 +13,11 @@ import java.io.IOException;
  * @author reghao
  * @date 2021-04-01 21:55:32
  */
-public class RabbitProducer {
+public class RabbitProducers {
     private final ConnectionFactory connFactory;
     private final String exchange = "amq.direct";
 
-    public RabbitProducer(RabbitConfig config) {
+    public RabbitProducers(RabbitConfig config) {
         this.connFactory = new ConnectionFactory();
         this.connFactory.setHost(config.getHost());
         this.connFactory.setPort(5672);

+ 2 - 1
message/message-service/src/main/java/cn/reghao/tnb/message/app/amqp/RpcListener.java → message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/c/RpcListener.java

@@ -1,5 +1,6 @@
-package cn.reghao.tnb.message.app.amqp;
+package cn.reghao.tnb.message.app.rabbit.c;
 
+import cn.reghao.tnb.message.app.rabbit.RabbitConfig;
 import com.rabbitmq.client.Channel;
 import com.rabbitmq.client.Connection;
 import com.rabbitmq.client.ConnectionFactory;

+ 1 - 1
message/message-service/src/main/java/cn/reghao/tnb/message/app/amqp/RpcListenerCallback.java → message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/c/RpcListenerCallback.java

@@ -1,4 +1,4 @@
-package cn.reghao.tnb.message.app.amqp;
+package cn.reghao.tnb.message.app.rabbit.c;
 
 import cn.reghao.jutil.jdk.result.Result;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;

+ 23 - 9
message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/RabbitListeners.java → message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/listener/RabbitListeners.java

@@ -1,7 +1,9 @@
-package cn.reghao.tnb.message.app.rabbit;
+package cn.reghao.tnb.message.app.rabbit.listener;
 
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
 import cn.reghao.tnb.message.api.dto.msg.BaseMessage;
+import cn.reghao.tnb.message.app.model.po.AccessLog;
+import cn.reghao.tnb.message.app.model.po.RuntimeLog;
 import cn.reghao.tnb.message.app.service.MessageConsumer;
 import cn.reghao.tnb.message.app.ws.WsConnection;
 import cn.reghao.tnb.message.app.ws.msg.ChatPayload;
@@ -52,14 +54,6 @@ public class RabbitListeners {
         }
     }
 
-    /*@RabbitListener(bindings =@QueueBinding(
-            value = @Queue(value = "tnb.message.verify", durable = "true"),
-            key = "tnb.account.message",
-            exchange = @Exchange(value = "amq.direct"))
-    )
-    public void verifyMessageConsumer(@Payload String msg) {
-    }*/
-
     @RabbitListener(bindings =@QueueBinding(
             value = @Queue(value = "tnb.message.account", durable = "true"),
             key = "tnb.message.account",
@@ -77,4 +71,24 @@ public class RabbitListeners {
             e.printStackTrace();
         }
     }
+
+    @RabbitListener(bindings =@QueueBinding(
+            value = @Queue(value = "tnb.log.access", durable = "true"),
+            key = "tnb.log.access",
+            exchange = @Exchange(value = "amq.direct"))
+    )
+    public void accessLogConsumer(@Payload String msg) {
+        AccessLog accessLog = JsonConverter.jsonToObject(msg, AccessLog.class);
+        log.info("{} -> {}", accessLog.getRequestId(), accessLog.getRequestUrl());
+    }
+
+    @RabbitListener(bindings =@QueueBinding(
+            value = @Queue(value = "tnb.log.runtime", durable = "true"),
+            key = "tnb.log.runtime",
+            exchange = @Exchange(value = "amq.direct"))
+    )
+    public void runtimeLogConsumer(@Payload String msg) {
+        RuntimeLog runtimeLog = JsonConverter.jsonToObject(msg, RuntimeLog.class);
+        log.info("{} -> {}:{}", runtimeLog.getApp(), runtimeLog.getApp(), runtimeLog.getHost());
+    }
 }