/**
*
* @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);
return configuration;
}
}