Java源码示例:io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry

示例1
public DefaultPluginInfoRepository(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.PLUGIN_INFO,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例2
public DefaultNotificationDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.NOTIFICATION,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例3
@Bean
DeliveryRepository deliveryRepository(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultDeliveryRepository(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getDeliveryConfig().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getDeliveryConfig().getRefreshMs(),
      storageServiceConfigurationProperties.getDeliveryConfig().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例4
public DefaultPipelineStrategyDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.STRATEGY,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例5
@Bean
ServiceAccountDAO serviceAccountDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultServiceAccountDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getServiceAccount().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getServiceAccount().getRefreshMs(),
      storageServiceConfigurationProperties.getServiceAccount().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例6
@Bean
PipelineDAO pipelineDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultPipelineDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getPipeline().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getPipeline().getRefreshMs(),
      storageServiceConfigurationProperties.getPipeline().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例7
@Before
public void setup() {
    registry = new CollectorRegistry();
    circuitBreakerMetricsPublisher = new CircuitBreakerMetricsPublisher();
    circuitBreakerMetricsPublisher.register(registry);
    circuitBreakerRegistry = CircuitBreakerRegistry
        .of(CircuitBreakerConfig.ofDefaults(), circuitBreakerMetricsPublisher);

    CircuitBreakerConfig configWithSlowCallThreshold = CircuitBreakerConfig.custom()
        .slowCallDurationThreshold(Duration.ofSeconds(1)).build();
    circuitBreaker = circuitBreakerRegistry
        .circuitBreaker("backendA", configWithSlowCallThreshold);

    // record some basic stats
    // SLOW_SUCCESS
    circuitBreaker.onSuccess(2000, TimeUnit.NANOSECONDS);
    circuitBreaker.onError(100, TimeUnit.NANOSECONDS, new RuntimeException("oops"));
    circuitBreaker.transitionToOpenState();
}
 
示例8
@Before
public void setup() {
    registry = new CollectorRegistry();
    circuitBreakerRegistry = CircuitBreakerRegistry.ofDefaults();

    CircuitBreakerConfig configWithSlowCallThreshold = CircuitBreakerConfig.custom()
        .slowCallDurationThreshold(Duration.ofSeconds(1)).build();
    circuitBreaker = circuitBreakerRegistry
        .circuitBreaker("backendA", configWithSlowCallThreshold);

    CircuitBreakerMetricsCollector.ofCircuitBreakerRegistry(circuitBreakerRegistry)
        .register(registry);

    // record some basic stats
    // SLOW_SUCCESS
    circuitBreaker.onSuccess(2000, TimeUnit.NANOSECONDS);
    circuitBreaker.onError(100, TimeUnit.NANOSECONDS, new RuntimeException("oops"));
    circuitBreaker.transitionToOpenState();
}
 
示例9
@Bean
PipelineStrategyDAO pipelineStrategyDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultPipelineStrategyDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getPipelineStrategy().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getPipelineStrategy().getRefreshMs(),
      storageServiceConfigurationProperties.getPipelineStrategy().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例10
public DefaultPluginVersionPinningRepository(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.PLUGIN_VERSIONS,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例11
@Bean
EntityTagsDAO entityTagsDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultEntityTagsDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getEntityTags().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getEntityTags().getRefreshMs(),
      storageServiceConfigurationProperties.getEntityTags().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例12
public DefaultSnapshotDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.SNAPSHOT,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例13
@Bean
ApplicationPermissionDAO applicationPermissionDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultApplicationPermissionDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getApplicationPermission().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getApplicationPermission().getRefreshMs(),
      storageServiceConfigurationProperties.getApplicationPermission().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例14
@Before
public void setUp() {
    meterRegistry = new SimpleMeterRegistry();
    taggedCircuitBreakerMetricsPublisher =
        new TaggedCircuitBreakerMetricsPublisher(meterRegistry);
    circuitBreakerRegistry =
        CircuitBreakerRegistry
            .of(CircuitBreakerConfig.ofDefaults(), taggedCircuitBreakerMetricsPublisher);

    CircuitBreakerConfig configWithSlowCallThreshold = CircuitBreakerConfig.custom()
        .slowCallDurationThreshold(Duration.ofSeconds(1)).build();
    circuitBreaker = circuitBreakerRegistry
        .circuitBreaker("backendA", configWithSlowCallThreshold);
    // record some basic stats
    circuitBreaker.onSuccess(0, TimeUnit.NANOSECONDS);
    circuitBreaker.onError(0, TimeUnit.NANOSECONDS, new RuntimeException("oops"));
    // record slow call
    circuitBreaker.onSuccess(2000, TimeUnit.NANOSECONDS);
    circuitBreaker.onError(2000, TimeUnit.NANOSECONDS, new RuntimeException("oops"));

}
 
示例15
@Bean
PluginVersionPinningRepository pluginVersionPinningRepository(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultPluginVersionPinningRepository(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getPluginInfo().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getPluginInfo().getRefreshMs(),
      storageServiceConfigurationProperties.getPluginInfo().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例16
@Before
public void setUp() {
    meterRegistry = new SimpleMeterRegistry();
    circuitBreakerRegistry = CircuitBreakerRegistry.ofDefaults();
    CircuitBreakerConfig configWithSlowCallThreshold = CircuitBreakerConfig.custom()
        .slowCallDurationThreshold(Duration.ofSeconds(1)).build();

    circuitBreaker = circuitBreakerRegistry
        .circuitBreaker("backendA", configWithSlowCallThreshold);
    // record some basic stats
    circuitBreaker.onSuccess(0, TimeUnit.NANOSECONDS);
    circuitBreaker.onError(0, TimeUnit.NANOSECONDS, new RuntimeException("oops"));
    // record slow calls
    circuitBreaker.onSuccess(2000, TimeUnit.NANOSECONDS);
    circuitBreaker.onError(2000, TimeUnit.NANOSECONDS, new RuntimeException("oops"));

    taggedCircuitBreakerMetrics = TaggedCircuitBreakerMetrics
        .ofCircuitBreakerRegistry(circuitBreakerRegistry);
    taggedCircuitBreakerMetrics.bindTo(meterRegistry);
}
 
示例17
public DefaultDeliveryRepository(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.DELIVERY,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例18
public DefaultPipelineDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.PIPELINE,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例19
@Bean
PipelineTemplateDAO pipelineTemplateDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultPipelineTemplateDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getPipelineTemplate().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getPipelineTemplate().getRefreshMs(),
      storageServiceConfigurationProperties.getPipelineTemplate().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例20
public DefaultEntityTagsDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.ENTITY_TAGS,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例21
@Bean
NotificationDAO notificationDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultNotificationDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getNotification().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getNotification().getRefreshMs(),
      storageServiceConfigurationProperties.getNotification().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例22
@Bean
ProjectDAO projectDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultProjectDAO(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getProject().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getProject().getRefreshMs(),
      storageServiceConfigurationProperties.getProject().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例23
@Test
public void testWithCircuitBreakerMetrics() throws Exception {
    CircuitBreakerConfig config =
        CircuitBreakerConfig.custom()
            .waitDurationInOpenState(Duration.ofMillis(150))
            .failureRateThreshold(50)
            .permittedNumberOfCallsInHalfOpenState(3)
            .slidingWindowSize(10)
            .build();
    CircuitBreaker circuitBreaker = CircuitBreakerRegistry.ofDefaults()
        .circuitBreaker("test", config);
    MetricRegistry metricRegistry = new MetricRegistry();

    metricRegistry.registerAll(CircuitBreakerMetrics.ofCircuitBreaker(circuitBreaker));
    circuitBreakerMetricsUsesFirstStateObjectInstance(circuitBreaker, metricRegistry);
}
 
示例24
@Test
public void testWithCircuitBreakerMetricsPublisher() throws Exception {
    CircuitBreakerConfig config =
        CircuitBreakerConfig.custom()
            .waitDurationInOpenState(Duration.ofSeconds(1))
            .failureRateThreshold(50)
            .permittedNumberOfCallsInHalfOpenState(3)
            .slidingWindowSize(10)
            .build();
    MetricRegistry metricRegistry = new MetricRegistry();
    CircuitBreakerRegistry circuitBreakerRegistry = CircuitBreakerRegistry
        .of(config, new CircuitBreakerMetricsPublisher(metricRegistry));
    CircuitBreaker circuitBreaker = circuitBreakerRegistry.circuitBreaker("test", config);

    circuitBreakerMetricsUsesFirstStateObjectInstance(circuitBreaker, metricRegistry);
}
 
示例25
public DefaultPipelineTemplateDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.PIPELINE_TEMPLATE,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例26
@Override
public ApplicationPermissionDAO applicationPermissionDAO(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  GcsStorageService service =
      googleCloudStorageService(ApplicationPermissionDAO.DEFAULT_DATA_FILENAME, gcsProperties);
  ObjectKeyLoader keyLoader = new DefaultObjectKeyLoader(service);
  return new DefaultApplicationPermissionDAO(
      service,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getApplicationPermission().getThreadPool())),
      keyLoader,
      storageServiceConfigurationProperties.getApplicationPermission().getRefreshMs(),
      storageServiceConfigurationProperties.getApplicationPermission().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例27
public DefaultProjectDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.PROJECT,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例28
@Bean
PluginInfoRepository pluginInfoRepository(
    StorageService storageService,
    StorageServiceConfigurationProperties storageServiceConfigurationProperties,
    ObjectKeyLoader objectKeyLoader,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  return new DefaultPluginInfoRepository(
      storageService,
      Schedulers.from(
          Executors.newFixedThreadPool(
              storageServiceConfigurationProperties.getPluginInfo().getThreadPool())),
      objectKeyLoader,
      storageServiceConfigurationProperties.getPluginInfo().getRefreshMs(),
      storageServiceConfigurationProperties.getPluginInfo().getShouldWarmCache(),
      registry,
      circuitBreakerRegistry);
}
 
示例29
public DefaultApplicationDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.APPLICATION,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}
 
示例30
public DefaultApplicationPermissionDAO(
    StorageService service,
    Scheduler scheduler,
    ObjectKeyLoader objectKeyLoader,
    long refreshIntervalMs,
    boolean shouldWarmCache,
    Registry registry,
    CircuitBreakerRegistry circuitBreakerRegistry) {
  super(
      ObjectType.APPLICATION_PERMISSION,
      service,
      scheduler,
      objectKeyLoader,
      refreshIntervalMs,
      shouldWarmCache,
      registry,
      circuitBreakerRegistry);
}