All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.eureka2.server.service.ChannelFactoryImpl Maven / Gradle / Ivy

package com.netflix.eureka2.server.service;

import com.netflix.eureka2.registry.InstanceInfo;
import com.netflix.eureka2.server.metric.EurekaServerMetricFactory;
import com.netflix.eureka2.server.registry.EurekaServerRegistry;
import com.netflix.eureka2.server.registry.eviction.EvictionQueue;
import com.netflix.eureka2.service.InterestChannel;
import com.netflix.eureka2.service.RegistrationChannel;
import com.netflix.eureka2.transport.MessageConnection;

/**
 * An implementation of {@link ServerChannelFactory} associated with strictly one {@link MessageConnection}
 *
 * 

Thread safety

* * See {@link ServerChannelFactory} for details. This service assumes sequential (single threaded) invocations. * * @author Nitesh Kant */ public class ChannelFactoryImpl implements ServerChannelFactory { private final EurekaServerRegistry registry; private final EvictionQueue evictionQueue; private final MessageConnection connection; private final EurekaServerMetricFactory metricFactory; public ChannelFactoryImpl(EurekaServerRegistry registry, EvictionQueue evictionQueue, MessageConnection connection, EurekaServerMetricFactory metricFactory) { this.registry = registry; this.evictionQueue = evictionQueue; this.connection = connection; this.metricFactory = metricFactory; } @Override public InterestChannel newInterestChannel() { return new InterestChannelImpl(registry, connection, metricFactory.getInterestChannelMetrics()); } @Override public RegistrationChannel newRegistrationChannel() { return new RegistrationChannelImpl(registry, evictionQueue, connection, metricFactory.getRegistrationChannelMetrics()); } @Override public ReplicationChannel newReplicationChannel() { return new ReplicationChannelImpl(connection, registry, evictionQueue, metricFactory.getReplicationChannelMetrics()); } @Override public void shutdown() { connection.shutdown(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy