diff options
| author | zhanghongqing <[email protected]> | 2020-05-06 13:54:37 +0800 |
|---|---|---|
| committer | zhanghongqing <[email protected]> | 2020-05-06 13:54:37 +0800 |
| commit | cc929fdd7b8791c887e966d29ef4bf5bd25a4f87 (patch) | |
| tree | 97c53491b583eab81764bf210d40283996506478 | |
| parent | 6f9a92e326a3c60c6b5e75de5e0b015932e09f5b (diff) | |
任务调度整合配置中心nacosdev20200430+nacos
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);
+ }
}
|
