nacos加入到项目当中
This commit is contained in:
parent
face628e7c
commit
cc813549f3
@ -3,3 +3,5 @@ server:
|
||||
spring:
|
||||
application:
|
||||
name: deploy-ease-tenant-adapter-${TENANT_CODE}
|
||||
autoconfigure:
|
||||
exclude: org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
|
||||
@ -30,6 +30,8 @@ spring:
|
||||
maxPoolPreparedStatementPerConnectionSize: 20
|
||||
useGlobalDataSourceStat: true
|
||||
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
|
||||
autoconfigure:
|
||||
exclude: org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
|
||||
cloud:
|
||||
config:
|
||||
override-none: true
|
||||
|
||||
@ -32,10 +32,10 @@
|
||||
<groupId>org.apache.httpcomponents.client5</groupId>
|
||||
<artifactId>httpclient5</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.alibaba.fastjson2</groupId>-->
|
||||
<!-- <artifactId>fastjson2</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
|
||||
@ -5,6 +5,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.RedisSerializer;
|
||||
@ -15,8 +16,9 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
@Slf4j
|
||||
public class RedisAutoConfiguration {
|
||||
|
||||
public RedisAutoConfiguration() {
|
||||
|
||||
@Bean
|
||||
public RedisConnectionFactory redisConnectionFactory() {
|
||||
return new LettuceConnectionFactory();
|
||||
}
|
||||
|
||||
@Bean(name = "redisTemplate")
|
||||
|
||||
@ -59,9 +59,6 @@ public class TenantAdapterRunner implements CommandLineRunner {
|
||||
log.info("Start the tenant adapter project!!!");
|
||||
ExecutorService pool = Executors.newFixedThreadPool(tenants.size());
|
||||
ExecutorService checkRegistered = Executors.newSingleThreadExecutor();
|
||||
// for (TenantResponse tenant : tenants) {
|
||||
// runTenantAdapterJar(tenant.getTenantCode());
|
||||
// }
|
||||
CompletableFuture.allOf(tenants.stream().map(tenant -> CompletableFuture.runAsync(() -> execStartTenantAdapterJar(tenant.getTenantCode()), pool)).toArray(CompletableFuture[]::new));
|
||||
pool.shutdown();
|
||||
checkRegistered.submit(() -> {
|
||||
@ -102,13 +99,21 @@ public class TenantAdapterRunner implements CommandLineRunner {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String[] buildTenantAdapterNacosArgs(String tenantCode) {
|
||||
private String[] buildTenantAdapterRunArgs(String tenantCode) {
|
||||
Properties nacosProperties = nacosDiscoveryProperties.getNacosProperties();
|
||||
return new String[] {String.format("--NACOS_CONFIG_SERVER=%s", nacosProperties.get("serverAddr")), String.format("--TENANT_CODE=%s", tenantCode), String.format("--DEPLOY_ENV=%s", nacosProperties.get("namespace")), String.format("--NACOS_USER=%s", nacosProperties.get("username")), String.format("--NACOS_PWD=%s", nacosProperties.get("password"))};
|
||||
return new String[] {
|
||||
"-Dfile.encoding=utf-8",
|
||||
"-Dspring.config.location=classpath:/application-dev.yml",
|
||||
String.format("--NACOS_CONFIG_SERVER=%s", nacosProperties.get("serverAddr")),
|
||||
String.format("--TENANT_CODE=%s", tenantCode),
|
||||
String.format("--DEPLOY_ENV=%s", nacosProperties.get("namespace")),
|
||||
String.format("--NACOS_USER=%s", nacosProperties.get("username")),
|
||||
String.format("--NACOS_PWD=%s", nacosProperties.get("password"))
|
||||
};
|
||||
}
|
||||
|
||||
private void execStartTenantAdapterJar(String tenantCode) {
|
||||
String[] runArgs = buildTenantAdapterNacosArgs(tenantCode);
|
||||
String[] runArgs = buildTenantAdapterRunArgs(tenantCode);
|
||||
try {
|
||||
log.info("Start the {} adapter project", tenantCode);
|
||||
String[] command = {"java", "-jar", adapterJarFile};
|
||||
|
||||
@ -1,18 +1,13 @@
|
||||
package com.qc.soft.deploy.ease.adapter;
|
||||
|
||||
import com.qc.soft.framework.basic.config.GlobalExceptionHandler;
|
||||
import com.qc.soft.framework.basic.config.GlobalResponseHandler;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.SpringBootConfiguration;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
@SpringBootConfiguration
|
||||
@EnableAutoConfiguration
|
||||
@SpringBootApplication
|
||||
@ComponentScan("com.qc.soft.deploy.ease.*")
|
||||
@EnableFeignClients
|
||||
@EnableDiscoveryClient
|
||||
|
||||
@ -5,7 +5,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class JenkinsLoginBasic {
|
||||
|
||||
private String name;
|
||||
private String envName;
|
||||
|
||||
private String url;
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ public class TenantAdapterBeanRegistry implements BeanDefinitionRegistryPostProc
|
||||
}
|
||||
TenantContext.setCurrentTenant(environment.getProperty("TENANT_CODE"));
|
||||
JenkinsLoginBasic loginBasic = new JenkinsLoginBasic();
|
||||
loginBasic.setName("longi-dev&uat");
|
||||
loginBasic.setEnvName("longi-dev&uat");
|
||||
loginBasic.setUrl("http://jenkins-rd.longi.com:8080");
|
||||
loginBasic.setUsername("ibpuser");
|
||||
loginBasic.setPassword("ibp@ibp!2023");
|
||||
|
||||
@ -14,18 +14,4 @@ public class TenantAdapterConfiguration {
|
||||
};
|
||||
}
|
||||
|
||||
// @Bean(name = "redisTemplate")
|
||||
// public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
|
||||
// RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
||||
// redisTemplate.setConnectionFactory(factory);
|
||||
// RedisSerializer<String> stringSerializer = new StringRedisSerializer();
|
||||
// GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer();
|
||||
// redisTemplate.setKeySerializer(stringSerializer);
|
||||
// redisTemplate.setValueSerializer(serializer);
|
||||
// redisTemplate.setHashKeySerializer(stringSerializer);
|
||||
// redisTemplate.setHashValueSerializer(serializer);
|
||||
// return redisTemplate;
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.qc.soft.deploy.ease.adapter.consts;
|
||||
|
||||
import com.qc.soft.deploy.ease.adapter.context.TenantAdapterContext;
|
||||
import com.qc.soft.framework.basic.context.TenantContext;
|
||||
|
||||
public class JenkinsConstants {
|
||||
|
||||
@ -16,11 +17,11 @@ public class JenkinsConstants {
|
||||
|
||||
public static final String JENKINS_BUILD_API = "%s/view/%s/job/%s/%s/api/json?pretty=true";
|
||||
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original";
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original";
|
||||
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original:view:%s";
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original:view:%s";
|
||||
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original:view:%s:job:%s";
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original:view:%s:job:%s";
|
||||
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW_BUILD = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original:view:%s:job:%s:build:%s";
|
||||
public static final String REDIS_JENKINS_ORIGINAL_VIEW_BUILD = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original:view:%s:job:%s:build:%s";
|
||||
}
|
||||
|
||||
@ -2,9 +2,7 @@ package com.qc.soft.deploy.ease.adapter.context;
|
||||
|
||||
import com.qc.soft.deploy.ease.adapter.api.thirdparty.JenkinsLoginBasic;
|
||||
import com.qc.soft.framework.basic.utils.Base64AuthUtils;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
public class TenantAdapterContext {
|
||||
|
||||
@ -12,7 +10,7 @@ public class TenantAdapterContext {
|
||||
private static final JenkinsLoginBasic jenkinsLoginBasic = new JenkinsLoginBasic();
|
||||
|
||||
public static void buildJenkinsLoginBasic(JenkinsLoginBasic loginBasic) {
|
||||
jenkinsLoginBasic.setName(loginBasic.getName());
|
||||
jenkinsLoginBasic.setEnvName(loginBasic.getEnvName());
|
||||
jenkinsLoginBasic.setUrl(loginBasic.getUrl());
|
||||
jenkinsLoginBasic.setUsername(loginBasic.getUsername());
|
||||
jenkinsLoginBasic.setPassword(loginBasic.getPassword());
|
||||
|
||||
@ -8,6 +8,7 @@ import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsV
|
||||
import com.qc.soft.deploy.ease.adapter.service.IJenkinsService;
|
||||
import com.qc.soft.deploy.ease.api.response.TenantDictionaryResponse;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.codec.ServerSentEvent;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -16,6 +17,7 @@ import reactor.core.publisher.Flux;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalTime;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@ -63,10 +65,18 @@ public class JenkinsController {
|
||||
// return Flux.interval(Duration.ofSeconds(2)).map(index -> jenkinsService.aggregate());
|
||||
// }
|
||||
|
||||
@GetMapping(value = "jenkins/aggregate")
|
||||
public JenkinsAggregateResponse aggregate() {
|
||||
return jenkinsService.aggregate();
|
||||
}
|
||||
|
||||
|
||||
// @GetMapping(value = "jenkins/aggregate")
|
||||
// public JenkinsAggregateResponse aggregate() {
|
||||
// return jenkinsService.aggregate();
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @GetMapping(value = "/events", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
||||
// public Flux<ServerSentEvent<String>> streamEvents() {
|
||||
// return Flux.interval(Duration.ofSeconds(1))
|
||||
// .map(sequence -> ServerSentEvent.<String>builder()
|
||||
// .id(String.valueOf(sequence))
|
||||
// .data("Current time: " + LocalTime.now())
|
||||
// .build());
|
||||
// }
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
spring:
|
||||
application:
|
||||
name: deploy-ease-tenant-adapter
|
||||
autoconfigure:
|
||||
exclude: org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
|
||||
redis:
|
||||
enabled: true
|
||||
host: localhost
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
spring:
|
||||
application:
|
||||
name: deploy-ease-tenant-adapter
|
||||
autoconfigure:
|
||||
exclude: org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
|
||||
redis:
|
||||
enabled: true
|
||||
host: localhost
|
||||
|
||||
Loading…
Reference in New Issue
Block a user