Search in sources :

Example 1 with DynamicGZIPContentEncodingFilter

use of com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter in project eureka by Netflix.

the class JerseyReplicationClient method createReplicationClient.

public static JerseyReplicationClient createReplicationClient(EurekaServerConfig config, ServerCodecs serverCodecs, String serviceUrl) {
    String name = JerseyReplicationClient.class.getSimpleName() + ": " + serviceUrl + "apps/: ";
    EurekaJerseyClient jerseyClient;
    try {
        String hostname;
        try {
            hostname = new URL(serviceUrl).getHost();
        } catch (MalformedURLException e) {
            hostname = serviceUrl;
        }
        String jerseyClientName = "Discovery-PeerNodeClient-" + hostname;
        EurekaJerseyClientBuilder clientBuilder = new EurekaJerseyClientBuilder().withClientName(jerseyClientName).withUserAgent("Java-EurekaClient-Replication").withEncoderWrapper(serverCodecs.getFullJsonCodec()).withDecoderWrapper(serverCodecs.getFullJsonCodec()).withConnectionTimeout(config.getPeerNodeConnectTimeoutMs()).withReadTimeout(config.getPeerNodeReadTimeoutMs()).withMaxConnectionsPerHost(config.getPeerNodeTotalConnectionsPerHost()).withMaxTotalConnections(config.getPeerNodeTotalConnections()).withConnectionIdleTimeout(config.getPeerNodeConnectionIdleTimeoutSeconds());
        if (serviceUrl.startsWith("https://") && "true".equals(System.getProperty("com.netflix.eureka.shouldSSLConnectionsUseSystemSocketFactory"))) {
            clientBuilder.withSystemSSLConfiguration();
        }
        jerseyClient = clientBuilder.build();
    } catch (Throwable e) {
        throw new RuntimeException("Cannot Create new Replica Node :" + name, e);
    }
    String ip = null;
    try {
        ip = InetAddress.getLocalHost().getHostAddress();
    } catch (UnknownHostException e) {
        logger.warn("Cannot find localhost ip", e);
    }
    ApacheHttpClient4 jerseyApacheClient = jerseyClient.getClient();
    jerseyApacheClient.addFilter(new DynamicGZIPContentEncodingFilter(config));
    EurekaServerIdentity identity = new EurekaServerIdentity(ip);
    jerseyApacheClient.addFilter(new EurekaIdentityHeaderFilter(identity));
    return new JerseyReplicationClient(jerseyClient, serviceUrl);
}
Also used : MalformedURLException(java.net.MalformedURLException) EurekaJerseyClientBuilder(com.netflix.discovery.shared.transport.jersey.EurekaJerseyClientImpl.EurekaJerseyClientBuilder) UnknownHostException(java.net.UnknownHostException) DynamicGZIPContentEncodingFilter(com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter) EurekaJerseyClient(com.netflix.discovery.shared.transport.jersey.EurekaJerseyClient) URL(java.net.URL) EurekaIdentityHeaderFilter(com.netflix.discovery.EurekaIdentityHeaderFilter) EurekaServerIdentity(com.netflix.eureka.EurekaServerIdentity) ApacheHttpClient4(com.sun.jersey.client.apache4.ApacheHttpClient4)

Aggregations

EurekaIdentityHeaderFilter (com.netflix.discovery.EurekaIdentityHeaderFilter)1 EurekaJerseyClient (com.netflix.discovery.shared.transport.jersey.EurekaJerseyClient)1 EurekaJerseyClientBuilder (com.netflix.discovery.shared.transport.jersey.EurekaJerseyClientImpl.EurekaJerseyClientBuilder)1 EurekaServerIdentity (com.netflix.eureka.EurekaServerIdentity)1 DynamicGZIPContentEncodingFilter (com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter)1 ApacheHttpClient4 (com.sun.jersey.client.apache4.ApacheHttpClient4)1 MalformedURLException (java.net.MalformedURLException)1 URL (java.net.URL)1 UnknownHostException (java.net.UnknownHostException)1