Hystrix 从入门到深入——运行时修改动态配置

/**
 * 
 * @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 complete = new HashMap();

    /**
     * 配置中心配置了对应的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;
  }

}

你可能感兴趣的:(Hystrix)