Browse Source

update configuration

shjung 3 days ago
parent
commit
e3f7006cae

BIN
.DS_Store


+ 10 - 2
conf/tsi-comm-server.yml

@@ -1,5 +1,13 @@
-# Application Configure
+spring:
+  profiles:
+    active: dev
+
 application:
+  process-id: tsi-comm-server
   cvim-server:
-    server-id: 1
+    server-id: 0
     check-packet: false
+
+logging:
+  file:
+    path: ${user.dir}/logs/tsi-comm-server/

BIN
src/.DS_Store


BIN
src/main/.DS_Store


+ 6 - 0
src/main/java/com/tsi/app/common/utils/TimeUtils.java

@@ -82,6 +82,12 @@ public class TimeUtils {
         return to;
     }
 
+    public static String now() {
+        Date today = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(today);
+    }
+
     public static String dateToString(Date paramDt, String paramFmt) {
         Calendar cal = Calendar.getInstance();
         cal.setTime(paramDt);

+ 29 - 0
src/main/java/com/tsi/comm/server/AppNameInitializer.java

@@ -0,0 +1,29 @@
+package com.tsi.comm.server;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.env.Environment;
+
+@Slf4j
+public class AppNameInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
+
+    @Override
+    public void initialize(ConfigurableApplicationContext context) {
+        try {
+            String applicationName = "";
+            String poolName = "";
+
+            final Environment env = context.getEnvironment();
+            final String appName = env.getProperty("spring.application.name", TsiCommServerApplication.APPLICATION_NAME);
+            final String serverId = env.getProperty("application.cvim-server.server-id", "0");
+            applicationName = appName + "-" + serverId;
+            poolName = "pool-" + appName + "-" + serverId;
+//            System.setProperty("application.process-name", applicationName);
+            System.setProperty("spring.application.name", applicationName);
+            System.setProperty("spring.datasource.hikari.pool-name", poolName);
+        } catch (Exception e) {
+            log.error("Error during context initialization", e);
+        }
+    }
+}

+ 11 - 5
src/main/java/com/tsi/comm/server/TsiCommServerApplication.java

@@ -37,12 +37,15 @@ import java.util.Date;
 @ComponentScan(basePackages = {"com.tsi.app.common", "com.tsi.comm.server.config", "com.tsi.comm.server"})
 public class TsiCommServerApplication implements CommandLineRunner, ApplicationListener<ContextClosedEvent>, InitializingBean, DisposableBean {
 
-    private static String applicationName = "tsi-comm-server";
+    public static final String APPLICATION_NAME = "tsi-comm-server";
+
+    private String applicationName = APPLICATION_NAME;
 
     public static void main(String[] args) {
         SpringApplication application = new SpringApplicationBuilder()
                 .sources(TsiCommServerApplication.class)
-                .listeners(new ApplicationPidFileWriter("./conf/" + applicationName + ".pid"))
+                .listeners(new ApplicationPidFileWriter("./conf/" + APPLICATION_NAME + ".pid"))
+                .initializers(new AppNameInitializer())
                 .build();
         application.setBannerMode(Banner.Mode.OFF);
         application.run(args);
@@ -64,9 +67,10 @@ public class TsiCommServerApplication implements CommandLineRunner, ApplicationL
 
         TsiCvimServerConfig config = (TsiCvimServerConfig) AppUtils.getBean(TsiCvimServerConfig.class);
 
-        ApplicationRepository.processStateVo.setProcessId(applicationName + "-" + config.getServerId());
+        applicationName = APPLICATION_NAME + "-" + config.getServerId();
+        ApplicationRepository.processStateVo.setProcessId(applicationName);
 //        TsiAlarmManager alarmManager = (TsiAlarmManager) AppUtils.getBean(TsiAlarmManager.class);
-//        alarmManager.getProcessStateVo().setProcessId(applicationName + "-" + config.getServerId());
+//        alarmManager.getProcessStateVo().setProcessId(APPLICATION_NAME + "-" + config.getServerId());
 
         TsiDatabaseService tsiDatabaseService = (TsiDatabaseService) AppUtils.getBean(TsiDatabaseService.class);
         tsiDatabaseService.init();
@@ -102,7 +106,9 @@ public class TsiCommServerApplication implements CommandLineRunner, ApplicationL
             tsiDatabaseService.insertAlarmOccrHs(alarm);
             tsiDatabaseService.updateProcessState(0);
         }
-        catch(Exception e) { }
+        catch(Exception e) {
+            // no logging
+        }
     }
 
     @Override

+ 36 - 0
src/main/java/com/tsi/comm/server/config/ApplicationConfig.java

@@ -0,0 +1,36 @@
+package com.tsi.comm.server.config;
+
+import com.tsi.app.common.utils.TimeUtils;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+@Slf4j
+@Getter
+@Setter
+@ToString
+@Component
+@ConfigurationProperties(prefix = "application")
+public class ApplicationConfig {
+
+    private String processId = "tsi-comm-server";
+    private double cpuLimits = 75;
+    private String bootingTime;
+    private boolean startSchedule;
+
+    @PostConstruct
+    private void init() {
+        this.startSchedule = false;
+        this.bootingTime = TimeUtils.now();
+
+        log.info("[{}] -------------------------", this.getClass().getSimpleName());
+        log.info("[{}]         processId: {}", this.getClass().getSimpleName(), this.processId);
+        log.info("[{}]         cpuLimits: {}", this.getClass().getSimpleName(), this.cpuLimits);
+    }
+
+}

+ 4 - 4
src/main/java/com/tsi/comm/server/config/TsiKafkaProducerConfig.java

@@ -44,13 +44,13 @@ public class TsiKafkaProducerConfig {
     @PostConstruct
     private void init() {
 
-        if (this.cvimServers.equals("")) {
+        if (this.cvimServers.isEmpty()) {
             this.cvimServers = this.bootstrapServers;
         }
-        if (this.nodeServers.equals("")) {
+        if (this.nodeServers.isEmpty()) {
             this.nodeServers = this.bootstrapServers;
         }
-        if (this.testServers.equals("")) {
+        if (this.testServers.isEmpty()) {
             this.testServers = this.bootstrapServers;
         }
 
@@ -71,7 +71,7 @@ public class TsiKafkaProducerConfig {
     }
 
     public Map<String, Object> getConsumerPropertiesMap() {
-        Map<String, Object> properties = new HashMap();
+        Map<String, Object> properties = new HashMap<>();
         properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, this.bootstrapServers);
         properties.put(ConsumerConfig.GROUP_ID_CONFIG, getGroupId());
         properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "true");

+ 15 - 3
src/main/java/com/tsi/comm/server/mybatis/MybatisConfig.java

@@ -1,5 +1,7 @@
 package com.tsi.comm.server.mybatis;
 
+import com.zaxxer.hikari.HikariDataSource;
+import lombok.RequiredArgsConstructor;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionFactoryBean;
 import org.mybatis.spring.SqlSessionTemplate;
@@ -12,23 +14,33 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
+import org.springframework.core.env.Environment;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import javax.sql.DataSource;
 
+@RequiredArgsConstructor
 @Configuration
 @EnableTransactionManagement
 public class MybatisConfig {
 
-    @Value("${spring.datasource.mybatis.mapper-locations:classpath:mybatis/mapper/**/*.xml}")
+    private final Environment environment;
+
+    @Value("${spring.datasource.hikari.mapper-locations:classpath:mybatis/mapper/**/*.xml}")
     String mapperLocations;
 
     @Primary
     @Bean(name="dataSource")
-    @ConfigurationProperties(prefix="spring.datasource.mybatis")
+    @ConfigurationProperties(prefix="spring.datasource.hikari")
     public DataSource dataSource() {
-        return DataSourceBuilder.create().build();
+        HikariDataSource dataSource = DataSourceBuilder.create()
+                .type(HikariDataSource.class)
+                .build();
+
+        dataSource.setPoolName(this.environment.getProperty("spring.datasource.hikari.pool-name"));
+        return dataSource;
+//        return DataSourceBuilder.create().build();
     }
 
     @Primary

+ 13 - 7
src/main/resources/application.yml

@@ -8,14 +8,14 @@ spring:
     web-application-type: none
 
   datasource:
-    mybatis:
+    hikari:
       platform: mariadb
       driver-class-name: org.mariadb.jdbc.Driver
       username: cvim
       password: 44Klctest$$
-      jpool-name: hikari-cp
-      jmaximum-pool-size: 30
-      jminimum-idle: 2
+      pool-name: pool-tsi-comm-server
+      maximum-pool-size: 30
+      minimum-idle: 2
 
   data:
     mongodb:
@@ -24,14 +24,20 @@ spring:
       password: 44Klctest$$
       database: ssip
 
+logging:
+  file:
+    path: ${user.home}/logs/tsi-comm-server/
+
 # Application Configure
 application:
+  process-id: tsi-comm-server
   thread-pool:
     pool-core: 1
   scheduling:
     pool-core: 10
 
   cvim-server:
+    server-id: 0
     binding-addr:
     binding-port: 9091
     backlog: 0
@@ -71,9 +77,9 @@ application:
 spring:
   config:
     activate:
-      on-profile: seoul
+      on-profile: prod
   datasource:
-    mybatis:
+    hikari:
       jdbc-url: jdbc:mariadb://10.4.4.20:3306/cvim_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
 
   data:
@@ -92,7 +98,7 @@ spring:
     activate:
       on-profile: dev
   datasource:
-    mybatis:
+    hikari:
       jdbc-url: jdbc:mariadb://115.91.94.42:13306/cvim_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
       username: cvim
       password: 44Klctest$$

+ 4 - 2
src/main/resources/logback-spring.xml

@@ -5,8 +5,10 @@
     <property name="PROJECT_NAME"    value="tsi-comm-server"/>
     <property name="ROOT_LOG_LEVEL"  value="DEBUG"/>
     <property name="LOG_CHARSET"     value="UTF-8" />
-    <property name="LOG_PATH"        value="${user.dir}/logs/${PROJECT_NAME}/"/>
-    <property name="LOG_BACKUP_PATH" value="${user.dir}/logs/${PROJECT_NAME}/backup/"/>
+
+    <springProperty scope="context" name="LOGGING_PATH" source="logging.file.path"/>
+    <property name="LOG_PATH" value="${LOGGING_PATH:-${user.dir}/logs/${PROJECT_NAME}}/"/>
+    <property name="LOG_BACKUP_PATH" value="${LOG_PATH}/backup/"/>
 
     <property name="LOG_FILE_NAME"             value="${PROJECT_NAME}.log"/>
     <property name="LOG_FILE_NAME_ERROR"       value="${PROJECT_NAME}.err.log"/>