feat 添加Skywalking依赖

master
rouchen 2024-05-19 21:17:39 +08:00
parent 2eb21c3906
commit 330110f419
8 changed files with 201 additions and 67 deletions

View File

@ -52,6 +52,19 @@
<artifactId>muyu-common-security</artifactId> <artifactId>muyu-common-security</artifactId>
</dependency> </dependency>
<!-- skywalking 整合 logback -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.16.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.16.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -1,7 +1,10 @@
package com.muyu.source.client.config; package com.muyu.source.client.config;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.source.connection.service.ConnectionPoolManagement; import com.muyu.source.client.pool.BasePool;
import com.muyu.source.client.pool.MysqlPool;
import com.muyu.source.client.pool.confilg.MysqlPoolConfig;
import com.muyu.source.client.pool.dto.SysDataSource;
import com.muyu.source.domain.Kvt; import com.muyu.source.domain.Kvt;
import com.muyu.source.remote.RemoteDataManagerService; import com.muyu.source.remote.RemoteDataManagerService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -9,6 +12,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
@ -29,62 +38,62 @@ public class KvtClientRunner implements ApplicationRunner {
public void run(ApplicationArguments args) { public void run(ApplicationArguments args) {
Result<List<Kvt>> list = remoteDataManagerService.selectKvt(); Result<List<Kvt>> selectKvt = remoteDataManagerService.selectKvt();
List<Kvt> data = list.getData(); List<Kvt> data = selectKvt.getData();
if(data != null) { // if(data != null) {
ConnectionPoolManagement.init(data); // ConnectionPoolManagement.init(data);
} else { // } else {
log.warn("数据源为空"); // log.warn("数据源为空");
// }
//
//
List<SysDataSource> aa = new ArrayList<>();
HashMap<String, Connection> map = new HashMap<>();
data.forEach(kvt -> {
MysqlPoolConfig build = MysqlPoolConfig.builder()
.id(String.valueOf(kvt.getId()))
.ip(kvt.getHost())
.port(kvt.getPort())
.databaseName(kvt.getDatabaseName())
.param(kvt.getConnectionParam())
.initTotal(Math.toIntExact(kvt.getInitNum()))
.maxTotal(Math.toIntExact(kvt.getMaxNum()))
.maxWaitTimes(kvt.getMaxWaitTime())
.userName(kvt.getUsername())
.password(kvt.getPassword())
.driverName("com.mysql.cj.jdbc.Driver")
.build();
BasePool<Connection> mysqlPool = new MysqlPool(build);
log.info("初始化开始");
mysqlPool.init();
int initNum = build.getInitTotal();
for (int i = 0; i < initNum; i++) {
Connection connection = mysqlPool.creatConnection();
map.put(String.valueOf(i), connection);
mysqlPool.returnConn(connection);
}
log.info("-------------------------");
mysqlPool.close();
log.info("map:{}",map);
});
Connection connection = map.get("1");
Statement statement =null;
try{
statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SHOW Tables");
while (resultSet.next()){
String name = resultSet.getString(1);
log.info("name:{}",name);
}
log.info("连接成功");
}catch (SQLException e){
log.error("sql错误");
} }
// List<SysDataSource> list = new ArrayList<>();
// HashMap<String, Object> hashMap = new HashMap<>();
// data.forEach(kvt -> {
//
// MysqlPoolConfig build = MysqlPoolConfig.builder()
// .id(String.valueOf(kvt.getId()))
// .ip(kvt.getHost())
// .port(kvt.getPort())
// .databaseName(kvt.getDatabaseName())
// .param(kvt.getConnectionParam())
// .initTotal(Math.toIntExact(kvt.getInitNum()))
// .maxTotal(Math.toIntExact(kvt.getMaxNum()))
// .maxWaitTimes(kvt.getMaxWaitTime())
// .userName(kvt.getUsername())
// .password(kvt.getPassword())
// .driverName("com.mysql.cj.jdbc.Driver")
// .build();
// BasePool<Connection> mysqlPool = new MysqlPool(build);
//
// log.info("初始化开始");
//
// mysqlPool.init();
// int initNum = build.getInitTotal();
// for (int i = 0; i < initNum; i++) {
// Connection connection = mysqlPool.creatConnection();
// map.put(String.valueOf(i), connection);
// mysqlPool.returnConn(connection);
// }
// log.info("-------------------------");
// mysqlPool.close();
// log.info("map:{}",map);
// });
// Connection connection = map.get("1");
// Statement statement =null;
// try{
// statement = connection.createStatement();
// ResultSet resultSet = statement.executeQuery("SHOW Tables");
// while (resultSet.next()){
// String name = resultSet.getString(1);
// log.info("name:{}",name);
// }
// log.info("连接成功");
// }catch (SQLException e){
// log.error("sql错误");
// }
// SysDataSource sysDataSource = new SysDataSource(); // SysDataSource sysDataSource = new SysDataSource();
@ -105,17 +114,17 @@ public class KvtClientRunner implements ApplicationRunner {
// sysDataSource.setRemark("测试"); // sysDataSource.setRemark("测试");
// sysDataSource.setIsInit("Y"); // sysDataSource.setIsInit("Y");
// //
// list.add(sysDataSource); // aa.add(sysDataSource);
// //
// list.forEach(sysDataSoure -> { // list.forEach(sysDataSoure -> {
// MysqlPoolConfig build = MysqlPoolConfig.builder() // MysqlPoolConfig build = MysqlPoolConfig.builder()
// .id(sysDataSoure.getId()) // .id(String.valueOf(sysDataSoure.getId()))
// .ip(sysDataSoure.getHost()) // .ip(sysDataSoure.getHost())
// .port(sysDataSoure.getPort()) // .port(sysDataSoure.getPort())
// .databaseName(sysDataSoure.getDatabaseName()) // .databaseName(sysDataSoure.getDatabaseName())
// .param(sysDataSoure.getConnectionParam()) // .param(sysDataSoure.getConnectionParam())
// .initTotal(sysDataSoure.getInitNum()) // .initTotal(Math.toIntExact(sysDataSoure.getInitNum()))
// .maxTotal(sysDataSoure.getMaxNum()) // .maxTotal(Math.toIntExact(sysDataSoure.getMaxNum()))
// .maxWaitTimes(sysDataSoure.getMaxWaitTime()) // .maxWaitTimes(sysDataSoure.getMaxWaitTime())
// .userName(sysDataSoure.getUsername()) // .userName(sysDataSoure.getUsername())
// .password(sysDataSoure.getPassword()) // .password(sysDataSoure.getPassword())
@ -126,7 +135,7 @@ public class KvtClientRunner implements ApplicationRunner {
// log.info("初始化开始"); // log.info("初始化开始");
// //
// mysqlPool.init(); // mysqlPool.init();
// int initNum = sysDataSoure.getInitNum(); // int initNum = Math.toIntExact(sysDataSoure.getInitNum());
// for (int i = 0; i < initNum; i++) { // for (int i = 0; i < initNum; i++) {
// Connection connection = mysqlPool.creatConnection(); // Connection connection = mysqlPool.creatConnection();
// map.put(String.valueOf(i), connection); // map.put(String.valueOf(i), connection);
@ -136,16 +145,15 @@ public class KvtClientRunner implements ApplicationRunner {
// mysqlPool.close(); // mysqlPool.close();
// log.info("map:{}",map); // log.info("map:{}",map);
// }); // });
//
// Connection connection = map.get("1"); // Connection connection = map.get("1");
// Statement statement =null; // Statement statement =null;
// try{ // try{
// statement = connection.createStatement(); // statement = connection.createStatement();
// ResultSet resultSet = statement.executeQuery("select * from user"); // ResultSet resultSet = statement.executeQuery("SELECT Table");
// while (resultSet.next()){ // while (resultSet.next()){
// int id = resultSet.getInt(1); // String name = resultSet.getString(1);
// String name = resultSet.getString(2); // log.info("name:{}",name);
// log.info("id:{},name:{}",id,name);
// } // }
// log.info("连接成功"); // log.info("连接成功");
// }catch (SQLException e){ // }catch (SQLException e){

View File

@ -2,12 +2,18 @@ package com.muyu.engine.client;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.engine.domain.RuleEngine; import com.muyu.engine.domain.RuleEngine;
import com.muyu.engine.domain.rule_engine_version.RuleEngineVersion;
import com.muyu.engine.remote.RuleEngineManangerService; import com.muyu.engine.remote.RuleEngineManangerService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import javax.tools.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.net.URI;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
@ -25,7 +31,80 @@ public class EngClientRunner implements ApplicationRunner {
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
Result<List<RuleEngine>> listResult = ruleEngineManangerService.selectRuleEngine(); Result<List<RuleEngine>> listResult = ruleEngineManangerService.selectRuleEngine();
System.out.println("sdsssssssssssssssssssssssss"+listResult.getData());
// Result<List<RuleEngineVersion>> result = ruleEngineManangerService.RuleEngineVersionList(new RuleEngineVersionQueryReq());
// List<RuleEngineVersion> data = result.getData();
// System.out.println("result = " + result);
// data.forEach(ruleEngineVersion -> {
// //如何判断指定目录下是否有.java文件
// this.writeCodeAdd(ruleEngineVersion);
// });
} }
private String url ="D:\\work\\zglkh\\cloud-server\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-common\\src\\main\\java\\com\\muyu\\engine\\java\\";
public void writeCodeAdd(RuleEngineVersion ruleEngineVersion) {
try {
String originalVersionCode = ruleEngineVersion.getVersionCode();
// 提取第一个字符并转换为大写
String firstCharUpperCase = originalVersionCode.substring(0, 1).toUpperCase();
// 截取从第二个字符到末尾的子串
String restOfVersionCode = originalVersionCode.substring(1);
// 将首字母大写和剩余部分拼接起来
String newVersionCode = firstCharUpperCase + restOfVersionCode;
String className = newVersionCode;
//编译
String path=url+className+".java";
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path));
// 写入内容
bufferedWriter.write(ruleEngineVersion.getCodeIng());
// 关闭流
bufferedWriter.close();
//编译内容
String content = ruleEngineVersion.getCodeIng();
// 指定输出目录
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// 获取编译器
try (StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null)) {
// 创建一个内存中的源文件
JavaFileObject sourceFileObject = new JavaSourceFromString(className, content);
// 编译选项
Iterable<String> options = Arrays.asList("-d", url);
// 编译源代码
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, options, null, Arrays.asList(sourceFileObject));
boolean success = task.call();
if (success) {
System.out.println("编译成功");
} else {
System.out.println("编译失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}catch (Exception e) {
e.printStackTrace();
}
}
//内存中的源文件
static class JavaSourceFromString extends SimpleJavaFileObject {
final String code;
// 构造方法
JavaSourceFromString(String name, String code) {
// URI
super(URI.create("string:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE);
this.code = code;
}
// 返回源代码
@Override
public CharSequence getCharContent(boolean ignoreEncodingErrors) {
return code;
}
}
} }

View File

@ -1,6 +1,9 @@
package com.muyu.model; package com.muyu.model;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/** /**
* DataModel * DataModel
@ -9,6 +12,9 @@ import lombok.Data;
* on 2024/5/8 * on 2024/5/8
*/ */
@Data @Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class DataModel { public class DataModel {

View File

@ -1,7 +1,10 @@
package com.muyu.scope.model; package com.muyu.scope.model;
import com.muyu.model.DataModel; import com.muyu.model.DataModel;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/** /**
* @Author: DongZeLiang * @Author: DongZeLiang
@ -10,6 +13,9 @@ import lombok.Data;
* @Version: 1.0 * @Version: 1.0
*/ */
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class DataProcessModel { public class DataProcessModel {
private DataModel dataModel; private DataModel dataModel;

View File

@ -32,4 +32,8 @@ import java.util.List;
public interface RuleEngineManangerService { public interface RuleEngineManangerService {
@PostMapping("/selectRuleEngine") @PostMapping("/selectRuleEngine")
public Result<List<RuleEngine>> selectRuleEngine(); public Result<List<RuleEngine>> selectRuleEngine();
//
// @GetMapping("/RuleEngineVersionList")
// public Result<List<RuleEngineVersion>> RuleEngineVersionList(RuleEngineVersionQueryReq ruleEngineVersionQueryReq) ;
} }

View File

@ -23,6 +23,11 @@ public class RuleEngineManangerServiceFactory implements FallbackFactory<RuleEng
public Result<List<RuleEngine>> selectRuleEngine() { public Result<List<RuleEngine>> selectRuleEngine() {
return Result.error(cause.getMessage()); return Result.error(cause.getMessage());
} }
// @Override
// public Result<List<RuleEngineVersion>> RuleEngineVersionList(RuleEngineVersionQueryReq ruleEngineVersionQueryReq) {
// return Result.error(cause.getMessage());
// }
}; };
} }
} }

View File

@ -116,8 +116,21 @@ private RuleEngineService ruleEngineService;
log.info("编码保存成功"); log.info("编码保存成功");
} }
@Override @Override
public Result test(EngineVersionReq engineVersionReq) { public Result test(EngineVersionReq engineVersionReq) {
if (engineVersionReq.getLevel().equals("data-field")){
}
if (engineVersionReq.getLevel().equals("data-set")){
}
if (engineVersionReq.getLevel().equals("recording")){
}
return null; return null;
} }