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

com.netflix.eureka2.client.EurekaClientBuilder Maven / Gradle / Ivy

package com.netflix.eureka2.client;

import com.netflix.eureka2.client.metric.EurekaClientMetricFactory;
import com.netflix.eureka2.client.resolver.ServerResolver;
import com.netflix.eureka2.client.transport.TransportClients;
import com.netflix.eureka2.transport.EurekaTransports;

/**
 * A builder for creating {@link EurekaClient} instances.
 *
 * @author Nitesh Kant
 */
public class EurekaClientBuilder {

    private ServerResolver readServerResolver;
    private ServerResolver writeServerResolver;
    private EurekaClientMetricFactory metricFactory;
    private EurekaTransports.Codec codec = EurekaTransports.Codec.Avro;

    public EurekaClientBuilder(ServerResolver readServerResolver,
                               ServerResolver writeServerResolver) {
        this.readServerResolver = readServerResolver;
        this.writeServerResolver = writeServerResolver;
    }

    public EurekaClient build() {
        if (null == metricFactory) {
            metricFactory = EurekaClientMetricFactory.clientMetrics();
        }
        return new EurekaClientImpl(TransportClients.newTcpRegistrationClient(writeServerResolver, codec),
                                    TransportClients.newTcpDiscoveryClient(readServerResolver, codec), metricFactory);
    }

    public EurekaClientBuilder withMetricFactory(EurekaClientMetricFactory metricFactory) {
        this.metricFactory = metricFactory;
        return this;
    }

    public EurekaClientBuilder withCodec(EurekaTransports.Codec codec) {
        this.codec = codec;
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy