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

版权声明:坚持原创,坚持深入原理,未经博主允许不得转载!! 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;
  }

}

猜你喜欢

转载自blog.csdn.net/lemon89/article/details/80563708