Parcourir la source

删除 mongodb 依赖, 不持久化日志

reghao il y a 2 ans
Parent
commit
2ab3654c60

+ 0 - 5
manager/pom.xml

@@ -97,11 +97,6 @@
             <version>3.3.1</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-mongodb</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>

+ 1 - 5
manager/src/main/java/cn/reghao/devops/manager/app/controller/page/StatusPageController.java

@@ -5,8 +5,6 @@ import cn.reghao.devops.manager.app.model.constant.EnvMap;
 import cn.reghao.devops.manager.app.model.vo.AppRunning;
 import cn.reghao.devops.manager.app.model.vo.AppRunningVO;
 import cn.reghao.devops.manager.app.service.bd.DeployStat;
-import cn.reghao.devops.manager.log.model.vo.AppLogVO;
-import cn.reghao.devops.manager.log.service.LogService;
 import cn.reghao.devops.manager.util.db.PageSort;
 import cn.reghao.jutil.jdk.db.PageList;
 import io.swagger.annotations.Api;
@@ -34,11 +32,9 @@ import java.util.*;
 @RequestMapping("/app/stat")
 public class StatusPageController {
     private final DeployStat deployStat;
-    private final LogService logService;
 
-    public StatusPageController(DeployStat deployStat, LogService logService) {
+    public StatusPageController(DeployStat deployStat) {
         this.deployStat = deployStat;
-        this.logService = logService;
     }
 
     @ApiOperation(value = "应用运行状态列表页面")

+ 0 - 87
manager/src/main/java/cn/reghao/devops/manager/log/db/mongo/AccessLogMongo.java

@@ -1,87 +0,0 @@
-package cn.reghao.devops.manager.log.db.mongo;
-
-import cn.reghao.devops.manager.log.model.po.AccessLog;
-import cn.reghao.jutil.jdk.db.BaseCrud;
-import cn.reghao.jutil.jdk.db.BaseQuery;
-import com.mongodb.MongoBulkWriteException;
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.result.InsertManyResult;
-import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-10-23 11:23:02
- */
-@Slf4j
-@Repository
-public class AccessLogMongo implements BaseCrud<AccessLog>, BaseQuery<AccessLog> {
-    private final String colName = "AccessLog";
-    private final MongoTemplate mongoTemplate;
-    private final MongoConverter mongoConverter;
-    private final int pageSize = 1000;
-
-    public AccessLogMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
-        this.mongoTemplate = mongoTemplate;
-        this.mongoConverter = mongoConverter;
-    }
-
-    @Override
-    public AccessLog save(AccessLog accessLog) {
-        Document doc = new Document();
-        mongoConverter.write(accessLog, doc);
-        mongoTemplate.getCollection(colName).insertOne(doc);
-        return null;
-    }
-
-    @Override
-    public void saveAll(List<AccessLog> list) {
-        List<Document> documents = list.stream()
-                .map(t -> {
-                    Document doc = new Document();
-                    mongoConverter.write(t, doc);
-                    return doc;
-                })
-                .collect(Collectors.toList());
-
-        InsertManyOptions options = new InsertManyOptions();
-        // 忽略 insert 失败的文档
-        options.ordered(false);
-        try {
-            InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
-        }  catch (MongoBulkWriteException ignore) {
-        }
-    }
-
-    @Override
-    public void update(AccessLog accessLog) {
-    }
-
-    @Override
-    public void delete(AccessLog accessLog) {
-    }
-
-    public List<AccessLog> findByPage(long page) {
-        Query query = new Query();
-        query.skip((page - 1) * pageSize).limit(pageSize);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "createTime")));
-        return mongoTemplate.find(query, AccessLog.class, colName);
-    }
-
-    public List<AccessLog> findAllByPage(long page, int size, List<Criteria> criteriaList) {
-        Query query = new Query();
-        criteriaList.forEach(query::addCriteria);
-        query.skip((page - 1) * size).limit(size);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "createTime")));
-        return mongoTemplate.find(query, AccessLog.class, colName);
-    }
-}

+ 0 - 99
manager/src/main/java/cn/reghao/devops/manager/log/db/mongo/AppLogMongo.java

@@ -1,99 +0,0 @@
-package cn.reghao.devops.manager.log.db.mongo;
-
-import cn.reghao.devops.manager.log.model.po.AppLog;
-import cn.reghao.jutil.jdk.db.BaseCrud;
-import cn.reghao.jutil.jdk.db.BaseQuery;
-import com.mongodb.MongoBulkWriteException;
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.result.InsertManyResult;
-import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-import java.util.Locale;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-10-23 11:31:02
- */
-@Slf4j
-@Repository
-public class AppLogMongo implements BaseCrud<AppLog>, BaseQuery<AppLog> {
-    private final String colName = "AppLog";
-    private final MongoTemplate mongoTemplate;
-    private final MongoConverter mongoConverter;
-    private final int pageSize = 100;
-
-    public AppLogMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
-        this.mongoTemplate = mongoTemplate;
-        this.mongoConverter = mongoConverter;
-    }
-
-    @Override
-    public AppLog save(AppLog appLog) {
-        Document doc = new Document();
-        mongoConverter.write(appLog, doc);
-        mongoTemplate.getCollection(colName).insertOne(doc);
-        return null;
-    }
-
-    @Override
-    public void saveAll(List<AppLog> list) {
-        List<Document> documents = list.stream()
-                .map(t -> {
-                    Document doc = new Document();
-                    mongoConverter.write(t, doc);
-                    return doc;
-                })
-                .collect(Collectors.toList());
-
-        InsertManyOptions options = new InsertManyOptions();
-        // 忽略 insert 失败的文档
-        options.ordered(false);
-        try {
-            InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
-        }  catch (MongoBulkWriteException ignore) {
-        }
-    }
-
-    @Override
-    public void update(AppLog appLog) {
-    }
-
-    @Override
-    public void delete(AppLog appLog) {
-    }
-
-    public List<AppLog> findByPage(long page) {
-        Query query = new Query();
-        query.skip((page - 1) * pageSize).limit(pageSize);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "timestamp")));
-        return mongoTemplate.find(query, AppLog.class, colName);
-    }
-
-    public List<AppLog> findByPage(String app, String host, String level) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("app").is(app));
-        query.addCriteria(Criteria.where("host").is(host));
-        query.addCriteria(Criteria.where("level").is(level.toUpperCase(Locale.ROOT)));
-
-        query.skip(0).limit(pageSize);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "timestamp")));
-        return mongoTemplate.find(query, AppLog.class, colName);
-    }
-
-    public List<AppLog> findAllByPage(long page, int size, List<Criteria> criteriaList) {
-        Query query = new Query();
-        criteriaList.forEach(query::addCriteria);
-        query.skip((page - 1) * size).limit(size);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "createTime")));
-        return mongoTemplate.find(query, AppLog.class, colName);
-    }
-}

+ 3 - 13
manager/src/main/java/cn/reghao/devops/manager/log/service/LogService.java

@@ -1,12 +1,11 @@
 package cn.reghao.devops.manager.log.service;
 
-import cn.reghao.devops.manager.log.db.mongo.AccessLogMongo;
-import cn.reghao.devops.manager.log.db.mongo.AppLogMongo;
 import cn.reghao.devops.manager.log.model.po.AccessLog;
 import cn.reghao.devops.manager.log.model.po.AppLog;
 import cn.reghao.devops.manager.log.model.vo.AppLogVO;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -17,25 +16,16 @@ import java.util.stream.Collectors;
  */
 @Service
 public class LogService {
-    private final AppLogMongo appLogMongo;
-    private final AccessLogMongo accessLogMongo;
-
-    private LogService(AppLogMongo appLogMongo, AccessLogMongo accessLogMongo) {
-        this.appLogMongo = appLogMongo;
-        this.accessLogMongo = accessLogMongo;
-    }
-
     public void saveAppLog(cn.reghao.jutil.jdk.result.AppLog appLog) {
-        appLogMongo.save(new AppLog(appLog));
     }
 
     public List<AppLogVO> getAppLogs(String app, String host, String level) {
-        List<AppLog> list = appLogMongo.findByPage(app, host ,level);
+        //List<AppLog> list = appLogMongo.findByPage(app, host ,level);
+        List<AppLog> list = new ArrayList<>();
         Collections.reverse(list);
         return list.stream().map(AppLogVO::new).collect(Collectors.toList());
     }
 
     public void saveAccessLog(AccessLog accessLog) {
-        accessLogMongo.save(accessLog);
     }
 }

+ 1 - 5
manager/src/main/java/cn/reghao/devops/manager/ws/handler/LogHandler.java

@@ -1,7 +1,6 @@
 package cn.reghao.devops.manager.ws.handler;
 
 import cn.reghao.devops.model.NginxLog;
-import cn.reghao.devops.manager.log.service.LogService;
 import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.result.AppLog;
 import cn.reghao.jutil.jdk.serializer.JdkSerializer;
@@ -28,11 +27,9 @@ import java.util.concurrent.ExecutorService;
 @Component
 public class LogHandler implements WebSocketHandler {
     private final ExecutorService threadPool = ThreadPoolWrapper.threadPool("push-task", 1);
-    private final LogService logService;
     private final Map<String, WebSocketSession> pullSessions = new ConcurrentHashMap<>();
 
-    public LogHandler(LogService logService) {
-        this.logService = logService;
+    public LogHandler() {
         threadPool.submit(new PushTask());
     }
 
@@ -82,7 +79,6 @@ public class LogHandler implements WebSocketHandler {
                 Object object = JdkSerializer.deserialize(binaryMessage.getPayload().array());
                 if (object instanceof AppLog) {
                     AppLog appLog = (AppLog) object;
-                    logService.saveAppLog(appLog);
                     String dateTimeStr = DateTimeConverter.format(appLog.getTimestamp());
 
                     String app = appLog.getApp();

+ 0 - 7
manager/src/main/resources/application-dev.yml

@@ -3,13 +3,6 @@ spring:
     url: jdbc:mysql://192.168.0.110:3306/reghao_devops_tdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
     username: test
     password: Test@123456
-  data:
-    mongodb:
-      host: localhost
-      database: "reghao_log_rdb"
-      authentication-database: admin
-      username: dev
-      password: Dev@123456
 webhook:
   name: ding-tnb
   url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662

+ 0 - 7
manager/src/main/resources/application-dev1.yml

@@ -3,13 +3,6 @@ spring:
     url: jdbc:mysql://localhost:3306/reghao_devops_rdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
     username: dev
     password: Dev@123456
-  data:
-    mongodb:
-      host: localhost
-      database: "reghao_log_rdb"
-      authentication-database: admin
-      username: dev
-      password: Dev@123456
 webhook:
   name: ding-tnb
   url: https://oapi.dingtalk.com/robot/send?access_token=2ede844511f6a12a0429a25585222ef1f0eb99094421ea4b3155f17fda0f4662