From 6af3adc8fb79cd393c3e5ed96b7dcb83bf663ce6 Mon Sep 17 00:00:00 2001 From: Saisai Liu <1374434128@qq.com> Date: Sun, 12 May 2024 22:43:15 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=88=86=E7=A6=BB=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- muyu-modules/muyu-etl/muyu-etl-client/pom.xml | 10 +- .../java/com/muyu/etl/AssetClientRunner.java | 36 ++++-- .../java/com/muyu/etl/MainApplication.java | 26 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 3 +- .../src/main/resources/bootstrap.yml | 4 +- muyu-modules/muyu-etl/muyu-etl-common/pom.xml | 10 ++ .../java/com/muyu/etl/util}/JDBCUtils.java | 2 +- .../etl/util/factory}/DruidUtilsFactory.java | 16 ++- .../util}/service/ConnectionPoolFactory.java | 2 +- .../muyu-etl/muyu-etl-service/pom.xml | 20 ++- .../controller/BasicConfigInfoController.java | 2 +- .../impl/BasicConfigInfoServiceImpl.java | 59 ++++++--- .../src/main/resources/bootstrap.yml | 17 +++ .../com/muyu/EngineClientApplication.java | 18 --- .../muyu-unit/muyu-unit-common/pom.xml | 30 +++++ .../muyu-unit/muyu-unit-remote/pom.xml | 20 +++ .../muyu-unit/muyu-unit-service/pom.xml | 118 ++++++++++++++++++ .../main/java/com/muyu/UnitApplication.java} | 4 +- .../java/com/muyu/custom/AddInitConn.java | 56 +++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 4 + .../src/main/resources/bootstrap.yml | 46 +++++++ muyu-modules/muyu-unit/pom.xml | 26 ++++ muyu-modules/pom.xml | 1 + pom.xml | 7 ++ 24 files changed, 468 insertions(+), 69 deletions(-) create mode 100644 muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/MainApplication.java rename muyu-modules/muyu-etl/{muyu-etl-client/src/main/java/com/muyu/etl/uitl => muyu-etl-common/src/main/java/com/muyu/etl/util}/JDBCUtils.java (98%) rename muyu-modules/muyu-etl/{muyu-etl-client/src/main/java/com/muyu/etl/uitl => muyu-etl-common/src/main/java/com/muyu/etl/util/factory}/DruidUtilsFactory.java (86%) rename muyu-modules/muyu-etl/{muyu-etl-client/src/main/java/com/muyu/etl/uitl => muyu-etl-common/src/main/java/com/muyu/etl/util}/service/ConnectionPoolFactory.java (94%) delete mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-client/src/main/java/com/muyu/EngineClientApplication.java create mode 100644 muyu-modules/muyu-unit/muyu-unit-common/pom.xml create mode 100644 muyu-modules/muyu-unit/muyu-unit-remote/pom.xml create mode 100644 muyu-modules/muyu-unit/muyu-unit-service/pom.xml rename muyu-modules/{muyu-etl/muyu-etl-client/src/main/java/com/muyu/EtlClientApplication.java => muyu-unit/muyu-unit-service/src/main/java/com/muyu/UnitApplication.java} (85%) create mode 100644 muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/custom/AddInitConn.java create mode 100644 muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/bootstrap.yml create mode 100644 muyu-modules/muyu-unit/pom.xml diff --git a/muyu-modules/muyu-etl/muyu-etl-client/pom.xml b/muyu-modules/muyu-etl/muyu-etl-client/pom.xml index c1f29ed..a51f6e4 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/pom.xml +++ b/muyu-modules/muyu-etl/muyu-etl-client/pom.xml @@ -79,21 +79,21 @@ - - com.muyu - muyu-common-log - + + + + com.muyu muyu-common-swagger + com.muyu muyu-etl-remote 3.6.3 - compile diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/AssetClientRunner.java b/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/AssetClientRunner.java index 3c75425..242d990 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/AssetClientRunner.java +++ b/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/AssetClientRunner.java @@ -5,8 +5,8 @@ import com.muyu.common.core.constant.SecurityConstants; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.etl.domain.BasicConfigInfo; -import com.muyu.etl.uitl.DruidUtilsFactory; -import com.muyu.etl.uitl.service.ConnectionPoolFactory; +import com.muyu.etl.util.factory.DruidUtilsFactory; +import com.muyu.etl.util.service.ConnectionPoolFactory; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; @@ -34,22 +34,32 @@ public class AssetClientRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws ServletException { - Result> result = remoteAssetService.list(new BasicConfigInfo(), SecurityConstants.INNER); - log.info("初始话内容为{}",result); - if (result.getData().getRows().isEmpty()) throw new ServletException("初始化调用失败,无数据"); - result.getData().getRows().stream().map(basicConfigInfo -> { + BasicConfigInfo basicConfigInfoSel = new BasicConfigInfo() {{ + setIsTest("1"); + }}; + Result> result = remoteAssetService.list(basicConfigInfoSel, SecurityConstants.INNER); + log.info("初始话内容为{}", result); + List rows = result.getData().getRows(); + if (rows.isEmpty()) throw new ServletException("初始化调用失败,无数据"); + log.info(rows); + int a = 0; + for (BasicConfigInfo basicConfigInfo : rows) { + a++; + log.info("a:{}", a); + log.warn("接入信息:{}", basicConfigInfo); DruidPooledConnection init = null; try { + log.info("初始化开始"); init = connectionPoolFactory.init(basicConfigInfo); - log.info("初始化结果:{}",init); - } catch (SQLException e) { - log.error("初始化异常:{}",e.getMessage()); - throw new RuntimeException(e); + log.info("初始化结果:{}", init); + } catch (Exception e) { + log.error("初始化异常:{}", e.getMessage()); + //跳过 + continue; } - return init; - }); + } log.info("初始化完成"); - log.info("连接池::{}",DruidUtilsFactory.map); + log.info("连接池::{}", DruidUtilsFactory.map); } } diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/MainApplication.java b/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/MainApplication.java new file mode 100644 index 0000000..c2e0a37 --- /dev/null +++ b/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/MainApplication.java @@ -0,0 +1,26 @@ +//package com.muyu.etl; +// +//import com.muyu.common.security.annotation.EnableCustomConfig; +//import com.muyu.common.security.annotation.EnableMyFeignClients; +//import com.muyu.common.swagger.annotation.EnableCustomSwagger2; +//import com.sun.tools.javac.Main; +//import org.springframework.boot.SpringApplication; +//import org.springframework.boot.autoconfigure.SpringBootApplication; +//import org.springframework.cloud.openfeign.EnableFeignClients; +// +///** +// * @ClassName Main +// * @Description 描述 +// * @Author SaiSai.Liu +// * @Date 2024/5/11 16:20 +// */ +//@EnableCustomConfig +//@EnableCustomSwagger2 +//@EnableMyFeignClients +//@EnableFeignClients +//@SpringBootApplication +//public class MainApplication { +// public static void main(String[] args) { +// SpringApplication.run(MainApplication.class); +// } +//} diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index c34ba1d..900cf2e 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,3 @@ com.muyu.etl.AssetClientRunner -com.muyu.etl.uitl.DruidUtilsFactory +com.muyu.etl.util.factory.DruidUtilsFactory +#com.muyu.etl.util.service.ConnectionPoolFactory diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/bootstrap.yml b/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/bootstrap.yml index ff9286f..0607e84 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-etl/muyu-etl-client/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat server: - port: 9215 + port: 9225 # Spring spring: @@ -26,4 +26,4 @@ spring: logging: level: com.muyu.etl.mapper: DEBUG - com.example.springmvctest.feign.api: DEBUG + com.muyu.etl.feign.api: DEBUG diff --git a/muyu-modules/muyu-etl/muyu-etl-common/pom.xml b/muyu-modules/muyu-etl/muyu-etl-common/pom.xml index 30a367d..98239e9 100644 --- a/muyu-modules/muyu-etl/muyu-etl-common/pom.xml +++ b/muyu-modules/muyu-etl/muyu-etl-common/pom.xml @@ -26,5 +26,15 @@ com.muyu muyu-common-security + + mysql + mysql-connector-java + + + com.alibaba + druid + 1.2.8 + + diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/JDBCUtils.java b/muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/JDBCUtils.java similarity index 98% rename from muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/JDBCUtils.java rename to muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/JDBCUtils.java index ebe1126..531e407 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/JDBCUtils.java +++ b/muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/JDBCUtils.java @@ -1,4 +1,4 @@ -package com.muyu.etl.uitl; +package com.muyu.etl.util; import java.io.FileInputStream; import java.io.IOException; diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/DruidUtilsFactory.java b/muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/factory/DruidUtilsFactory.java similarity index 86% rename from muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/DruidUtilsFactory.java rename to muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/factory/DruidUtilsFactory.java index 756b548..d0a78d4 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/DruidUtilsFactory.java +++ b/muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/factory/DruidUtilsFactory.java @@ -1,9 +1,9 @@ -package com.muyu.etl.uitl; +package com.muyu.etl.util.factory; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidPooledConnection; import com.muyu.etl.domain.BasicConfigInfo; -import com.muyu.etl.uitl.service.ConnectionPoolFactory; +import com.muyu.etl.util.service.ConnectionPoolFactory; import java.sql.Connection; import java.sql.SQLException; @@ -15,6 +15,7 @@ public class DruidUtilsFactory implements ConnectionPoolFactory /** * 初始化连接池 + * * @param basicConfigInfo * @return * @throws SQLException @@ -32,10 +33,18 @@ public class DruidUtilsFactory implements ConnectionPoolFactory source.setUrl("jdbc:" + databaseType + "://" + host + ":" + port + "/" + databaseName + "?" + basicConfigInfo.getConnectionParams()); source.setUsername(basicConfigInfo.getUsername()); source.setPassword(basicConfigInfo.getPassword()); + //初始化连接量 source.setInitialSize(Math.toIntExact(basicConfigInfo.getInitLinkNum())); + //最大连接数 source.setMaxActive(Math.toIntExact(basicConfigInfo.getMaxLinkNum())); source.setMaxWaitThreadCount(Math.toIntExact(basicConfigInfo.getMaxWaitTimes())); + //连接池中的最大最小生存时间 source.setMaxEvictableIdleTimeMillis(basicConfigInfo.getMaxWaitTime()); + source.setMinEvictableIdleTimeMillis(30000); + //最大等待时间 + source.setTimeBetweenEvictionRunsMillis(30000); + //进程最大等待时间 + source.setMaxWait(basicConfigInfo.getMaxWaitTime()); DruidPooledConnection pool = source.getConnection(); map.put(host + ":" + port + "/" + databaseName, pool); // 获取并返回连接池对象 @@ -44,6 +53,7 @@ public class DruidUtilsFactory implements ConnectionPoolFactory /** * 根据接入取出一个连接对象 + * * @param basicConfigInfo * @return */ @@ -59,6 +69,7 @@ public class DruidUtilsFactory implements ConnectionPoolFactory /** * 将连接对象放回连接池 + * * @param basicConfigInfo * @param connection */ @@ -72,5 +83,4 @@ public class DruidUtilsFactory implements ConnectionPoolFactory } - } diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/service/ConnectionPoolFactory.java b/muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/service/ConnectionPoolFactory.java similarity index 94% rename from muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/service/ConnectionPoolFactory.java rename to muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/service/ConnectionPoolFactory.java index 64e2294..52b01d3 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/etl/uitl/service/ConnectionPoolFactory.java +++ b/muyu-modules/muyu-etl/muyu-etl-common/src/main/java/com/muyu/etl/util/service/ConnectionPoolFactory.java @@ -1,4 +1,4 @@ -package com.muyu.etl.uitl.service; +package com.muyu.etl.util.service; import com.alibaba.druid.pool.DruidPooledConnection; diff --git a/muyu-modules/muyu-etl/muyu-etl-service/pom.xml b/muyu-modules/muyu-etl/muyu-etl-service/pom.xml index 0db0198..7ea09bf 100644 --- a/muyu-modules/muyu-etl/muyu-etl-service/pom.xml +++ b/muyu-modules/muyu-etl/muyu-etl-service/pom.xml @@ -89,10 +89,24 @@ com.muyu muyu-common-swagger + + - com.alibaba - druid - 1.2.8 + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.9.10 diff --git a/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java b/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java index 6abf457..c2ea022 100644 --- a/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java +++ b/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java @@ -45,7 +45,7 @@ public class BasicConfigInfoController extends BaseController { */ // @RequiresPermissions("etl:info:list") @PostMapping("/list") - public Result> list(BasicConfigInfo basicConfigInfo) { + public Result> list(@RequestBody BasicConfigInfo basicConfigInfo) { startPage(); List list = basicConfigInfoService.selectBasicConfigInfoList(basicConfigInfo); return getDataTable(list); diff --git a/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java b/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java index 0dba7f3..fbb279a 100644 --- a/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java +++ b/muyu-modules/muyu-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java @@ -1,8 +1,10 @@ package com.muyu.etl.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.uuid.UUID; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.etl.domain.BasicConfigInfo; import com.muyu.etl.domain.Structure; @@ -18,6 +20,12 @@ import com.muyu.etl.service.StructureService; import com.muyu.etl.service.TableInfoService; import lombok.SneakyThrows; import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,6 +58,9 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl() {{ - eq(BasicConfigInfo::getId, basicConfigInfo.getId()); - }}); System.out.println("Connected to the MySQL server successfully."); //同步数据库信息 + basicConfigInfo.setIsTest("1"); + this.update(basicConfigInfo, new LambdaUpdateWrapper<>(BasicConfigInfo.class) {{ + eq(BasicConfigInfo::getId, basicConfigInfo.getId()); + }}); //树级结构,库,表 TableInfo tableInfoInsert = TableInfo.builder() .basicId(basicConfigInfo.getId()) @@ -216,25 +227,34 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl{ + message.getMessageProperties().setConsumerTag(UUID.randomUUID().toString().replaceAll("-","")); + return message; + }); } catch (SQLException e) { log.error(e.getMessage()); + basicConfigInfo.setIsTest("0"); + this.update(basicConfigInfo, new LambdaUpdateWrapper() {{ + eq(BasicConfigInfo::getId, basicConfigInfo.getId()); + }}); throw new ServletException("连接失败"); } return true; @@ -449,7 +469,7 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl + + 4.0.0 + + com.muyu + muyu-unit + 3.6.3 + + + muyu-unit-common + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-etl-client + + + com.muyu + muyu-ruleEngine-client + + + diff --git a/muyu-modules/muyu-unit/muyu-unit-remote/pom.xml b/muyu-modules/muyu-unit/muyu-unit-remote/pom.xml new file mode 100644 index 0000000..5070b81 --- /dev/null +++ b/muyu-modules/muyu-unit/muyu-unit-remote/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.muyu + muyu-unit + 3.6.3 + + + muyu-unit-remote + + + 17 + 17 + UTF-8 + + + diff --git a/muyu-modules/muyu-unit/muyu-unit-service/pom.xml b/muyu-modules/muyu-unit/muyu-unit-service/pom.xml new file mode 100644 index 0000000..87646fd --- /dev/null +++ b/muyu-modules/muyu-unit/muyu-unit-service/pom.xml @@ -0,0 +1,118 @@ + + + 4.0.0 + + com.muyu + muyu-unit + 3.6.3 + + + muyu-unit-service + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-etl-client + 3.6.3 + + + + com.muyu + muyu-ruleEngine-client + 3.6.3 + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + com.muyu + muyu-common-swagger + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.9.10 + + + diff --git a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/EtlClientApplication.java b/muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/UnitApplication.java similarity index 85% rename from muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/EtlClientApplication.java rename to muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/UnitApplication.java index 634be56..c17325f 100644 --- a/muyu-modules/muyu-etl/muyu-etl-client/src/main/java/com/muyu/EtlClientApplication.java +++ b/muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/UnitApplication.java @@ -12,8 +12,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @EnableMyFeignClients @EnableFeignClients @SpringBootApplication -public class EtlClientApplication { +public class UnitApplication { public static void main(String[] args) { - SpringApplication.run(EtlClientApplication.class); + SpringApplication.run(UnitApplication.class); } } diff --git a/muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/custom/AddInitConn.java b/muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/custom/AddInitConn.java new file mode 100644 index 0000000..115d6cc --- /dev/null +++ b/muyu-modules/muyu-unit/muyu-unit-service/src/main/java/com/muyu/custom/AddInitConn.java @@ -0,0 +1,56 @@ +package com.muyu.custom; + +import com.alibaba.druid.pool.DruidPooledConnection; +import com.alibaba.fastjson2.JSON; +import com.muyu.etl.RemoteAssetService; +import com.muyu.etl.domain.BasicConfigInfo; +import com.muyu.etl.util.service.ConnectionPoolFactory; +import com.rabbitmq.client.Channel; +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.sql.SQLException; + +/** + * 初始化添加的连接池接入配置 + * @ClassName AddInitConn + * @Description 初始化添加的连接池接入配置 + * @Author SaiSai.Liu + * @Date 2024/5/12 14:18 + */ + +@Component +@Log4j2 +public class AddInitConn { + @Autowired + private RabbitTemplate rabbitTemplate; + @Autowired + private ConnectionPoolFactory connectionPoolFactory; + @RabbitListener(queuesToDeclare = {@Queue(name = "basicInfoQueue")}) + public void myConsumer(String basicInfo, Message message, Channel channel) throws ServletException { + if (basicInfo == null){ + throw new ServletException("队列内容为空"); + } + BasicConfigInfo basicConfigInfo = JSON.parseObject(basicInfo, BasicConfigInfo.class); + try { + DruidPooledConnection init = connectionPoolFactory.init(basicConfigInfo); + if (init == null){ + // 消息拒绝,放回队列中重新消费 + channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); + }else { + // 消息消费确认 + channel.basicAck(message.getMessageProperties().getDeliveryTag(), true); + } + } catch (SQLException | IOException e) { + log.error("初始化连接池失败,消费失败"); + throw new RuntimeException(e); + } + } +} diff --git a/muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..b9591db --- /dev/null +++ b/muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,4 @@ +com.muyu.etl.AssetClientRunner +com.muyu.etl.factory.RemoteAssetFallbackFactory +com.muyu.etl.util.factory.DruidUtilsFactory +#com.muyu.etl.util.service.ConnectionPoolFactory diff --git a/muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/bootstrap.yml b/muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..9929d0a --- /dev/null +++ b/muyu-modules/muyu-unit/muyu-unit-service/src/main/resources/bootstrap.yml @@ -0,0 +1,46 @@ +# Tomcat +server: + port: 9215 + +# Spring +spring: + application: + # 应用名称 + name: muyu-unit + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 43.142.100.73:8848 + config: + # 配置中心地址 + server-addr: 43.142.100.73:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + rabbitmq: + host: 43.142.100.73 + port: 5672 + username: guest + password: guest + virtual-host: / + publisher-confirm-type: correlated #确认消息已发送到交换机(Exchange) + publisher-returns: true #确认消息已发送到队列(Queue) + listener: + simple: + prefetch: 1 # 每次只能获取一条,处理完成才能获取下一条 + acknowledge-mode: manual # 设置消费端手动ack确认 + retry: + enabled: true # 是否支持重试 + template: + # 只要消息抵达Queue,就会异步发送优先回调return firm + mandatory: true +logging: + level: + com.muyu.etl.mapper: DEBUG + diff --git a/muyu-modules/muyu-unit/pom.xml b/muyu-modules/muyu-unit/pom.xml new file mode 100644 index 0000000..593427c --- /dev/null +++ b/muyu-modules/muyu-unit/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + com.muyu + muyu-modules + 3.6.3 + + + muyu-unit + pom + + muyu-unit-common + muyu-unit-service + muyu-unit-remote + + + + 17 + 17 + UTF-8 + + + diff --git a/muyu-modules/pom.xml b/muyu-modules/pom.xml index b193b26..ebc62d1 100644 --- a/muyu-modules/pom.xml +++ b/muyu-modules/pom.xml @@ -15,6 +15,7 @@ muyu-file muyu-etl muyu-ruleEngine + muyu-unit muyu-modules diff --git a/pom.xml b/pom.xml index 949907b..b3d7d4e 100644 --- a/pom.xml +++ b/pom.xml @@ -220,6 +220,13 @@ ${muyu.version} + + + com.muyu + muyu-unit-common + ${muyu.version} + +