版权声明:坚持原创,坚持深入原理,未经博主允许不得转载!! https://blog.csdn.net/lemon89/article/details/80563708
/**
*
* @author zhangshuo
*
*/
@Component
public class DynamicConfigSource implements PolledConfigurationSource {
private static final Logger logger = LoggerFactory.getLogger(DynamicConfigSource.class);
@Override
public PollResult poll(boolean initial, Object checkPoint) throws Exception {
Map<String, Object> complete = new HashMap<String, Object>();
/**
* 配置中心配置了对应的key/value。其中commandKey是我指定的具体接口。
*/
complete.put("hystrix.command.commandKey.circuitBreaker.forceOpen",
“具体配置,比如来自配置中心”);
logger.debug("poll:{}", complete);
return PollResult.createFull(complete);
}
}
@Configuration
public class InitDynamicConfig {
@Bean
public DynamicConfiguration dynamicConfiguration(DynamicConfigSource configource) {
DynamicConfiguration configuration = new DynamicConfiguration(configource,
new FixedDelayPollingScheduler(30 * 100, 60 * 100, false));
ConfigurationManager.install(configuration);// 安裝后会启动schedel,定时调用DynamicConfigSource.poll()更新配置
return configuration;
}
}