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

com.netflix.eureka2.client.transport.TransportClients Maven / Gradle / Ivy

package com.netflix.eureka2.client.transport;

import com.netflix.eureka2.client.EurekaClient;
import com.netflix.eureka2.client.resolver.ServerResolver;
import com.netflix.eureka2.client.transport.tcp.TcpDiscoveryClient;
import com.netflix.eureka2.client.transport.tcp.TcpRegistrationClient;
import com.netflix.eureka2.transport.EurekaTransports;
import com.netflix.eureka2.transport.EurekaTransports.Codec;

import static com.netflix.eureka2.client.metric.EurekaClientMetricFactory.clientMetrics;

/**
 * A factory to create {@link TransportClient} instances.
 *
 * @author Nitesh Kant
 */
public final class TransportClients {
    private static volatile Codec defaultCodec = Codec.Avro;

    private TransportClients() {
    }

    public static TransportClient newTcpDiscoveryClient(ServerResolver resolver) {
        return new TcpDiscoveryClient(resolver, defaultCodec, clientMetrics().getDiscoveryServerConnectionMetrics());
    }

    public static TransportClient newTcpDiscoveryClient(ServerResolver resolver,
                                                        EurekaTransports.Codec codec) {
        return new TcpDiscoveryClient(resolver, codec, clientMetrics().getDiscoveryServerConnectionMetrics());
    }

    public static TransportClient newTcpRegistrationClient(ServerResolver resolver) {
        return new TcpRegistrationClient(resolver, defaultCodec, clientMetrics().getRegistrationServerConnectionMetrics());
    }

    public static TransportClient newTcpRegistrationClient(ServerResolver resolver,
                                                           EurekaTransports.Codec codec) {
        return new TcpRegistrationClient(resolver, codec, clientMetrics().getRegistrationServerConnectionMetrics());
    }

    /**
     * It is expected that {@link EurekaClient} will always use single, most optimal codec type.
     * For some situations it may be however desirable to switch it to another type.
     */
    public static void setDefaultCodec(Codec newCodec) {
        defaultCodec = newCodec;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy