All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netease.nim.camellia.mq.isolation.controller.springboot.CamelliaMqIsolationControllerConfiguration Maven / Gradle / Ivy

The newest version!
package com.netease.nim.camellia.mq.isolation.controller.springboot;

import com.alibaba.fastjson.JSONObject;
import com.netease.nim.camellia.mq.isolation.controller.conf.MqIsolationControllerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created by caojiajun on 2023/3/28
 */
@Configuration
@EnableConfigurationProperties({CamelliaMqIsolationControllerProperties.class})
public class CamelliaMqIsolationControllerConfiguration {

    private static final Logger logger = LoggerFactory.getLogger(CamelliaMqIsolationControllerConfiguration.class);

    @Bean
    public MqIsolationControllerConfig controllerConfig(CamelliaMqIsolationControllerProperties properties) {
        String url = System.getProperty("camellia.config.url", properties.getCamelliaConfigUrl());
        if (url == null || url.isEmpty()) {
            return new MqIsolationControllerConfig();
        }
        int intervalSeconds = Integer.parseInt(System.getProperty("camellia.config.reload.interval.seconds", String.valueOf(properties.getCamelliaConfigReloadIntervalSeconds())));
        String namespace = System.getProperty("camellia.config.namespace", properties.getCamelliaConfigNamespace());
        MqIsolationControllerConfig config = new MqIsolationControllerConfig();
        config.setCamelliaConfigUrl(url);
        config.setCamelliaConfigReloadIntervalSeconds(intervalSeconds);
        config.setCamelliaConfigNamespace(namespace);
        config.setRouteLocalCacheSeconds(properties.getRouteLocalCacheSeconds());
        config.setRouteRedisCacheSeconds(properties.getRouteRedisCacheSeconds());
        config.setRouteRedisCacheRefreshSeconds(properties.getRouteRedisCacheRefreshSeconds());
        logger.info("MqIsolationControllerConfig init success, config = {}", JSONObject.toJSONString(config));
        return config;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy