public SourcedEurekaRegistryImpl(IndexRegistry<InstanceInfo> indexRegistry, EurekaRegistryMetricFactory metricsFactory, Scheduler scheduler) { this.indexRegistry = indexRegistry; this.metrics = metricsFactory.getEurekaServerRegistryMetrics(); invoker = new NotifyingInstanceInfoHolder.NotificationTaskInvoker( metricsFactory.getRegistryTaskInvokerMetrics(), scheduler); internalStore = new ConcurrentHashMap<>(); pauseableSubject = PauseableSubject.create(); internalStoreAccessor = new MultiSourcedDataHolder.HolderStoreAccessor<NotifyingInstanceInfoHolder>() { @Override public void add(NotifyingInstanceInfoHolder holder) { internalStore.put(holder.getId(), holder); metrics.setRegistrySize(internalStore.size()); } @Override public NotifyingInstanceInfoHolder get(String id) { return internalStore.get(id); } @Override public void remove(String id) { internalStore.remove(id); metrics.setRegistrySize(internalStore.size()); } @Override public boolean contains(String id) { return internalStore.containsKey(id); } }; }
public EvictionQueueImpl(long evictionTimeoutMs, EurekaRegistryMetricFactory metricFactory, Scheduler scheduler) { this.evictionTimeoutMs = evictionTimeoutMs; this.evictionQueueMetrics = metricFactory.getEvictionQueueMetrics(); this.worker = scheduler.createWorker(); this.queueSize = new AtomicInteger(0); }
public CLIENT build() { if (transportConfig == null) { transportConfig = new BasicEurekaTransportConfig.Builder().build(); } if (registryConfig == null) { registryConfig = new BasicEurekaRegistryConfig.Builder().build(); } if (clientMetricFactory == null) { clientMetricFactory = EurekaClientMetricFactory.clientMetrics(); } if (registryMetricFactory == null) { registryMetricFactory = EurekaRegistryMetricFactory.registryMetrics(); } return buildClient(); }
@Inject public PreservableEurekaRegistry(@Named("delegate") SourcedEurekaRegistry eurekaRegistry, EvictionQueue evictionQueue, EvictionStrategy evictionStrategy, EurekaRegistryMetricFactory metricFactory) { super(Status.UP, DESCRIPTOR); this.eurekaRegistry = eurekaRegistry; this.evictionQueue = evictionQueue; this.evictionStrategy = evictionStrategy; this.metrics = metricFactory.getEurekaServerRegistryMetrics(); this.evictionSubscriber = new EvictionSubscriber(); this.evictionSubscription = evictionQueue.pendingEvictions().subscribe(evictionSubscriber); }
new SourcedEurekaRegistryImpl(indexRegistry, registryMetrics()), registryConfig, registryMetrics() );