summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhanghongqing <[email protected]>2020-05-06 13:54:37 +0800
committerzhanghongqing <[email protected]>2020-05-06 13:54:37 +0800
commitcc929fdd7b8791c887e966d29ef4bf5bd25a4f87 (patch)
tree97c53491b583eab81764bf210d40283996506478
parent6f9a92e326a3c60c6b5e75de5e0b015932e09f5b (diff)
任务调度整合配置中心nacosdev20200430+nacos
-rw-r--r--xxl-job-admin/pom.xml13
-rw-r--r--xxl-job-admin/src/main/resources/bootstrap.properties12
-rw-r--r--xxl-job-executor-galaxy/pom.xml12
-rw-r--r--xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/DeletionConfig.java79
-rw-r--r--xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/KafkaConfig.java14
-rw-r--r--xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/StorgeConfig.java79
-rw-r--r--xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/service/jobhandler/LogStorageQuotaJob.java45
-rw-r--r--xxl-job-executor-galaxy/src/main/resources/bootstrap.properties18
-rw-r--r--xxl-job-executor-galaxy/src/test/java/com/xxl/job/executor/test/ShellTest.java22
9 files changed, 145 insertions, 149 deletions
diff --git a/xxl-job-admin/pom.xml b/xxl-job-admin/pom.xml
index 43a2e33..0946f51 100644
--- a/xxl-job-admin/pom.xml
+++ b/xxl-job-admin/pom.xml
@@ -76,6 +76,17 @@
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
+ <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
+ <dependency>
+ <groupId>com.alibaba.cloud</groupId>
+ <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+ <version>2.2.1.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>com.alibaba.cloud</groupId>
+ <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+ <version>2.2.1.RELEASE</version>
+ </dependency>
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
@@ -122,7 +133,7 @@
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<imageTags>
- <imageTag>v1.1.20200421</imageTag>
+ <imageTag>v1.0.20200421</imageTag>
</imageTags>
<!--将构建jar拷贝到/target/docker 目录下与dockerfile一起-->
diff --git a/xxl-job-admin/src/main/resources/bootstrap.properties b/xxl-job-admin/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000..962e5ae
--- /dev/null
+++ b/xxl-job-admin/src/main/resources/bootstrap.properties
@@ -0,0 +1,12 @@
+#服务器地址
+spring.cloud.nacos.config.server-addr=192.168.40.203:8848
+#默认为Public命名空间,可以省略不写
+spring.cloud.nacos.config.namespace=eeafe90c-4005-46c3-9cf3-80dad9bc74e4
+#指定配置群组 --如果是Public命名空间 则可以省略群组配置
+spring.cloud.nacos.config.group=galaxy-job
+#文件名 -- 如果没有配置则默认为 ${spring.appliction.name}
+spring.cloud.nacos.config.prefix=galaxy-job-admin
+#指定文件后缀
+spring.cloud.nacos.config.file-extension=properties
+#是否启用配置中心开关,默认true
+spring.cloud.nacos.config.enabled=false \ No newline at end of file
diff --git a/xxl-job-executor-galaxy/pom.xml b/xxl-job-executor-galaxy/pom.xml
index 6b29961..fd2b603 100644
--- a/xxl-job-executor-galaxy/pom.xml
+++ b/xxl-job-executor-galaxy/pom.xml
@@ -102,7 +102,11 @@
<artifactId>galaxy</artifactId>
<version>${galaxy.version}</version>
</dependency>
-
+ <dependency>
+ <groupId>com.alibaba.cloud</groupId>
+ <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+ <version>2.2.1.RELEASE</version>
+ </dependency>
</dependencies>
<build>
@@ -146,9 +150,9 @@
<JDK_IMAGE>192.168.40.153:9080/common/jdk:1.8.0_73</JDK_IMAGE>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
-<!-- <imageTags> -->
-<!-- <imageTag>1.0</imageTag> -->
-<!-- </imageTags> -->
+ <imageTags>
+ <imageTag>v1.1.20200428</imageTag>
+ </imageTags>
<!--将构建jar拷贝到/target/docker 目录下与dockerfile一起-->
<resources>
diff --git a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/DeletionConfig.java b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/DeletionConfig.java
index 0f28f88..0c7f78b 100644
--- a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/DeletionConfig.java
+++ b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/DeletionConfig.java
@@ -1,77 +1,34 @@
package com.xxl.job.executor.core.config;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
+import lombok.Data;
+
+@Data
+@RefreshScope
@Component
public class DeletionConfig {
- public static String trafficServer;
- public static String trafficDataSource;
- public static String trafficUserName;
- public static String trafficPassword;
- public static String clusterName = "ck_cluster";
-
- public static String analyticServer;
- public static String selectAnalyticServer;
-
-
- public String getTrafficServer() {
- return trafficServer;
- }
@Value("${delete.traffic.server}")
- public void setTrafficServer(String trafficServer) {
- DeletionConfig.trafficServer = trafficServer;
- }
- public String getTrafficDataSource() {
- return trafficDataSource;
- }
+ private String trafficServer;
+
@Value("${delete.traffic.datasource}")
- public void setTrafficDataSource(String trafficDataSource) {
- DeletionConfig.trafficDataSource = trafficDataSource;
- }
- public String getTrafficUserName() {
- return trafficUserName;
- }
+ private String trafficDataSource;
+
@Value("${delete.traffic.username}")
- public void setTrafficUserName(String trafficUserName) {
- DeletionConfig.trafficUserName = trafficUserName;
- }
- public String getTrafficPassword() {
- return trafficPassword;
- }
+ private String trafficUserName;
+
@Value("${delete.traffic.password}")
- public void setTrafficPassword(String trafficPassword) {
- DeletionConfig.trafficPassword = trafficPassword;
- }
- public String getAnalyticServer() {
- return analyticServer;
- }
+ private String trafficPassword;
+
+ private String clusterName = "ck_cluster";
+
@Value("${delete.analytic.server}")
- public void setAnalyticServer(String analyticServer) {
- DeletionConfig.analyticServer = analyticServer;
- }
- public String getSelectAnalyticServer() {
- return selectAnalyticServer;
- }
+ private String analyticServer;
+
@Value("${storge.analytic.server}")
- public void setSelectAnalyticServer(String selectAnalyticServer) {
- DeletionConfig.selectAnalyticServer = selectAnalyticServer;
- }
-
- public static String getClusterName() {
- return clusterName;
- }
- public static void setClusterName(String clusterName) {
- DeletionConfig.clusterName = clusterName;
- }
- @Override
- public String toString() {
- return "DeletionConfig [getTrafficServer()=" + getTrafficServer() + ", getTrafficDataSource()="
- + getTrafficDataSource() + ", getTrafficUserName()=" + getTrafficUserName() + ", getTrafficPassword()="
- + getTrafficPassword() + ", getAnalyticServer()="
- + getAnalyticServer() + ", getSelectAnalyticServer()=" + getSelectAnalyticServer() + "]";
- }
-
+ private String selectAnalyticServer;
}
diff --git a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/KafkaConfig.java b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/KafkaConfig.java
index 5c34b72..e05e55f 100644
--- a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/KafkaConfig.java
+++ b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/KafkaConfig.java
@@ -4,8 +4,8 @@ import java.util.Map;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.serialization.StringSerializer;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.annotation.EnableKafka;
@@ -14,16 +14,18 @@ import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.core.ProducerFactory;
@Configuration
+@RefreshScope
@EnableKafka
public class KafkaConfig {
- @Autowired
- KafkaProperties kafkaProperties;
+ @Value("${spring.kafka.bootstrap-servers}")
+ private String servers;
@Bean
+ @RefreshScope
public Map<String,Object> producerConfigs(){
Map<String,Object> configs = new HashMap<>();
- configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,kafkaProperties.getBootstrapServers());
+ configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,servers);
configs.put(ProducerConfig.RETRIES_CONFIG, 0);
configs.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384);
configs.put(ProducerConfig.ACKS_CONFIG, "-1");
@@ -35,11 +37,13 @@ public class KafkaConfig {
return configs;
}
@Bean
+ @RefreshScope
public ProducerFactory<String, Object> producerFactory() {
return new DefaultKafkaProducerFactory(producerConfigs());
}
@Bean
+ @RefreshScope
public KafkaTemplate<String, Object> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}
diff --git a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/StorgeConfig.java b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/StorgeConfig.java
index 9ee98fd..501a2ff 100644
--- a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/StorgeConfig.java
+++ b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/core/config/StorgeConfig.java
@@ -1,35 +1,46 @@
package com.xxl.job.executor.core.config;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
+import lombok.Data;
+
+@Data
@Component
+@RefreshScope
public class StorgeConfig {
- public static String storgeTrafficServer;// clickhouse要查看的ip
+ @Value("${storge.traffic.server}")
+ private String storgeTrafficServer;// clickhouse要查看的ip
- public static String storgeTrafficUsername;// clickhouse要查看的username
+ @Value("${storge.traffic.username}")
+ private String storgeTrafficUsername;// clickhouse要查看的username
- public static String storgeTrafficPassword;// clickhouse要查看的password
+ @Value("${storge.traffic.password}")
+ private String storgeTrafficPassword;// clickhouse要查看的password
- public static String storgeAnalyticServer;// druid 查询节点ip和port
+ @Value("${storge.analytic.server}")
+ private String storgeAnalyticServer;// druid 查询节点ip和port
- public static String storgeFilesServer;// minio ip
+ @Value("${storge.files.server}")
+ private String storgeFilesServer;// minio ip
/**
* 获取修改存储配额脚本参数命令
* @param scriptDirectory 脚本所在文件绝对路径
* DEPLOY=yes 标识脚本的第一次部署已经没了
*/
- public static String getStorgeConfigCommand (String scriptDirectory) {
+
+ public String getStorgeConfigCommand (String scriptDirectory) {
StringBuffer sb = new StringBuffer();
sb.append("sed -i \"s%DEPLOY=no%DEPLOY=yes%g\" "+scriptDirectory+"*.sh;");
sb.append("sed -i \"s%BASE_DIR=.*%BASE_DIR="+scriptDirectory+"%g\" "+scriptDirectory+"*.sh;");
- sb.append("sed -i \"s%TRAFFIC_SERVER=.*%TRAFFIC_SERVER="+StorgeConfig.storgeTrafficServer+"%g\" "+scriptDirectory+"*.sh;");
- sb.append("sed -i \"s%TRAFFIC_USERNAME=.*%TRAFFIC_USERNAME="+StorgeConfig.storgeTrafficUsername+"%g\" "+scriptDirectory+"*.sh;");
- sb.append("sed -i \"s%TRAFFIC_PASSWORD=.*%TRAFFIC_PASSWORD="+StorgeConfig.storgeTrafficPassword+"%g\" "+scriptDirectory+"*.sh;");
- sb.append("sed -i \"s%ANALYTIC_SERVER=.*%ANALYTIC_SERVER="+StorgeConfig.storgeAnalyticServer+"%g\" "+scriptDirectory+"*.sh;");
- sb.append("sed -i \"s%FILES_SERVER=.*%FILES_SERVER="+StorgeConfig.storgeFilesServer+"%g\" "+scriptDirectory+"*.sh;");
+ sb.append("sed -i \"s%TRAFFIC_SERVER=.*%TRAFFIC_SERVER="+storgeTrafficServer+"%g\" "+scriptDirectory+"*.sh;");
+ sb.append("sed -i \"s%TRAFFIC_USERNAME=.*%TRAFFIC_USERNAME="+storgeTrafficUsername+"%g\" "+scriptDirectory+"*.sh;");
+ sb.append("sed -i \"s%TRAFFIC_PASSWORD=.*%TRAFFIC_PASSWORD="+storgeTrafficPassword+"%g\" "+scriptDirectory+"*.sh;");
+ sb.append("sed -i \"s%ANALYTIC_SERVER=.*%ANALYTIC_SERVER="+storgeAnalyticServer+"%g\" "+scriptDirectory+"*.sh;");
+ sb.append("sed -i \"s%FILES_SERVER=.*%FILES_SERVER="+storgeFilesServer+"%g\" "+scriptDirectory+"*.sh;");
sb.append("chmod -R +x "+scriptDirectory+";");
return sb.toString();
}
@@ -37,56 +48,12 @@ public class StorgeConfig {
* 判断是否已经部署过脚步,并修改了参数
* @return
*/
- public static String getDeployScriptCommand (String scriptDirectory) {
+ public String getDeployScriptCommand (String scriptDirectory) {
StringBuffer sb = new StringBuffer();
sb.append("cat "+scriptDirectory+"*.sh|grep DEPLOY=yes||echo no;");
return sb.toString();
}
- public String getStorgeTrafficServer() {
- return storgeTrafficServer;
- }
-
- @Value("${storge.traffic.server}")
- public void setStorgeTrafficServer(String storgeTrafficServer) {
- StorgeConfig.storgeTrafficServer = storgeTrafficServer;
- }
-
- public String getStorgeTrafficUsername() {
- return storgeTrafficUsername;
- }
-
- @Value("${storge.traffic.username}")
- public void setStorgeTrafficUsername(String storgeTrafficServerUsername) {
- StorgeConfig.storgeTrafficUsername = storgeTrafficServerUsername;
- }
-
- public String getStorgeTrafficPassword() {
- return storgeTrafficPassword;
- }
-
- @Value("${storge.traffic.password}")
- public void setStorgeTrafficPassword(String storgeTrafficServerPassword) {
- StorgeConfig.storgeTrafficPassword = storgeTrafficServerPassword;
- }
-
- public String getStorgeAnalyticServer() {
- return storgeAnalyticServer;
- }
-
- @Value("${storge.analytic.server}")
- public void setStorgeAnalyticServer(String storgeAnalyticServer) {
- StorgeConfig.storgeAnalyticServer = storgeAnalyticServer;
- }
-
- public String getStorgeFilesServer() {
- return storgeFilesServer;
- }
-
- @Value("${storge.files.server}")
- public void setStorgeFilesServer(String storgeFilesServer) {
- StorgeConfig.storgeFilesServer = storgeFilesServer;
- }
}
diff --git a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/service/jobhandler/LogStorageQuotaJob.java b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/service/jobhandler/LogStorageQuotaJob.java
index 85f9f53..23c41a0 100644
--- a/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/service/jobhandler/LogStorageQuotaJob.java
+++ b/xxl-job-executor-galaxy/src/main/java/com/xxl/job/executor/service/jobhandler/LogStorageQuotaJob.java
@@ -12,6 +12,7 @@ import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import com.google.common.collect.Lists;
@@ -32,32 +33,36 @@ import com.zdjizhi.utils.StringUtil;
import com.zdjizhi.utils.TimeConstants;
@SuppressWarnings({ "unchecked", "rawtypes" })
@Component
+@RefreshScope
public class LogStorageQuotaJob {
private static Logger logger = LoggerFactory.getLogger(LogStorageQuotaJob.class);
- private static String trafficServer;
- private static String trafficDataSource;
- private static String trafficUserName;
- private static String trafficPassword;
-
- private static String clusterName = "ck_cluster";//clickhouse集群名称
-
- private static String analyticServer;
- private static String selectAnalyticServer;
- private static List<String> trafficTableList;
- private static List<String> analyticTableList;
+ private String trafficServer;
+ private String trafficDataSource;
+ private String trafficUserName;
+ private String trafficPassword;
+
+ private String clusterName = "ck_cluster";//clickhouse集群名称
+
+ private String analyticServer;
+ private String selectAnalyticServer;
+ private List<String> trafficTableList;
+ private List<String> analyticTableList;
@Autowired
+ StorgeConfig storgeConfig;
+
+ @Autowired
public LogStorageQuotaJob(DeletionConfig deletionConfig) {
- trafficServer = deletionConfig.trafficServer;
- trafficDataSource = deletionConfig.trafficDataSource;
- trafficUserName = deletionConfig.trafficUserName;
- trafficPassword = deletionConfig.trafficPassword;
- clusterName = deletionConfig.clusterName;
+ trafficServer = deletionConfig.getTrafficServer();
+ trafficDataSource = deletionConfig.getTrafficDataSource();
+ trafficUserName = deletionConfig.getTrafficUserName();
+ trafficPassword = deletionConfig.getTrafficPassword();
+ clusterName = deletionConfig.getClusterName();
- analyticServer = deletionConfig.analyticServer;
- selectAnalyticServer = deletionConfig.selectAnalyticServer;//用于查询
+ analyticServer = deletionConfig.getAnalyticServer();
+ selectAnalyticServer = deletionConfig.getSelectAnalyticServer();//用于查询
}
/**
* 设置流量日志存储策略储
@@ -293,7 +298,7 @@ public class LogStorageQuotaJob {
//脚本文件目录
String scriptDirectory = new File(scriptFile).getParent()+File.separator;
- Process catcommands = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",StorgeConfig.getDeployScriptCommand(scriptDirectory)});
+ Process catcommands = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",storgeConfig.getDeployScriptCommand(scriptDirectory)});
String deplopMessage = getProcessMessage(catcommands.getInputStream(), "UTF-8");
XxlJobLogger.log("script deploy {} ",deplopMessage);
catcommands.waitFor();
@@ -304,7 +309,7 @@ public class LogStorageQuotaJob {
//更新脚本参数,并分配权限
if("true".equals(String.valueOf(paramsMap.get("updateScript")))||"no".equals(deplopMessage)) {
//开通权限,修改配置文件
- String[] commands = new String[]{"/bin/sh","-c",StorgeConfig.getStorgeConfigCommand(scriptDirectory)};
+ String[] commands = new String[]{"/bin/sh","-c",storgeConfig.getStorgeConfigCommand(scriptDirectory)};
Process chmodProcess = Runtime.getRuntime().exec(commands);
XxlJobLogger.log("Update parameters and chmod command ! ");
diff --git a/xxl-job-executor-galaxy/src/main/resources/bootstrap.properties b/xxl-job-executor-galaxy/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000..2cb7672
--- /dev/null
+++ b/xxl-job-executor-galaxy/src/main/resources/bootstrap.properties
@@ -0,0 +1,18 @@
+#服务器地址
+spring.cloud.nacos.config.server-addr=192.168.40.203:8848
+#namespace 注意这里是nacos生成的字符串,用于区分环境
+spring.cloud.nacos.config.namespace=eeafe90c-4005-46c3-9cf3-80dad9bc74e4
+
+#配置dataId 同命名空间,同组下 唯一,用于区分配置 ,[n] n越大优先级越高
+spring.cloud.nacos.config.ext-config[0].data-id=galaxy-job-executor-application-1.properties
+#分组 用于区分应用或项目或工程
+spring.cloud.nacos.config.ext-config[0].group=galaxy-job
+#动态刷新
+spring.cloud.nacos.config.ext-config[0].refresh=true
+#业务模块配置(独立配置属性)
+spring.cloud.nacos.config.ext-config[1].data-id=galaxy-job-executor.yml
+spring.cloud.nacos.config.ext-config[1].group=galaxy-job
+#动态刷新
+spring.cloud.nacos.config.ext-config[1].refresh=true
+#是否开启nacos ,默认true
+spring.cloud.nacos.config.enabled=true \ No newline at end of file
diff --git a/xxl-job-executor-galaxy/src/test/java/com/xxl/job/executor/test/ShellTest.java b/xxl-job-executor-galaxy/src/test/java/com/xxl/job/executor/test/ShellTest.java
index cb2abb2..881e315 100644
--- a/xxl-job-executor-galaxy/src/test/java/com/xxl/job/executor/test/ShellTest.java
+++ b/xxl-job-executor-galaxy/src/test/java/com/xxl/job/executor/test/ShellTest.java
@@ -1,6 +1,7 @@
package com.xxl.job.executor.test;
import java.io.File;
import java.io.IOException;
+import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
@@ -30,10 +31,27 @@ public class ShellTest {
// runtime.exec("mv "+localFile +" "+remoteDirectory);
boolean unZipFiles = FileApplication.unZipFiles(localFile, new File("").getCanonicalPath()+"/config/");
// FileUtils.copyFileToDirectory(file, file2);
- String s = StorgeConfig.getStorgeConfigCommand("home");
- System.err.println(s);
+// String s = StorgeConfig.getStorgeConfigCommand("home");
+// System.err.println(s);
} catch (IOException e) {
e.printStackTrace();
}
}
+ private static boolean stopRequested;
+
+ public static void main(String[] args) throws InterruptedException {
+ Thread backgroundThread = new Thread(() -> {
+ System.out.println(stopRequested);
+ int i = 0;
+ while (!stopRequested) {
+ System.out.println(i);
+ i++;
+ }
+ });
+ System.out.println(stopRequested);
+ backgroundThread.start();
+ TimeUnit.SECONDS.sleep(1);
+ stopRequested = true;
+ System.out.println(stopRequested);
+ }
}