Search in sources :

Example 1 with HealthCheckedEndpointGroupBuilder

use of com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroupBuilder in project incubator-skywalking by apache.

the class ElasticSearchBuilder method build.

@SneakyThrows
public ElasticSearch build() {
    final List<Endpoint> endpoints = this.endpoints.build().stream().filter(StringUtil::isNotBlank).map(Endpoint::parse).collect(Collectors.toList());
    final ClientFactoryBuilder factoryBuilder = ClientFactory.builder().connectTimeout(connectTimeout).idleTimeout(socketTimeout).useHttp2Preface(false).workerGroup(numHttpClientThread > 0 ? numHttpClientThread : NUM_PROC);
    if (StringUtil.isNotBlank(trustStorePath)) {
        final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        final KeyStore truststore = KeyStore.getInstance("jks");
        try (final InputStream is = Files.newInputStream(Paths.get(trustStorePath))) {
            truststore.load(is, trustStorePass.toCharArray());
        }
        trustManagerFactory.init(truststore);
        factoryBuilder.tlsCustomizer(sslContextBuilder -> sslContextBuilder.trustManager(trustManagerFactory));
    }
    final ClientFactory clientFactory = factoryBuilder.build();
    final HealthCheckedEndpointGroupBuilder endpointGroupBuilder = HealthCheckedEndpointGroup.builder(EndpointGroup.of(endpoints), "_cluster/health").protocol(protocol).useGet(true).clientFactory(clientFactory).retryInterval(healthCheckRetryInterval).withClientOptions(options -> {
        options.decorator(LoggingClient.builder().logger(log).newDecorator());
        options.decorator((delegate, ctx, req) -> {
            ctx.logBuilder().name("health-check");
            return delegate.execute(ctx, req);
        });
        return options;
    });
    if (StringUtil.isNotBlank(username) && StringUtil.isNotBlank(password)) {
        endpointGroupBuilder.auth(AuthToken.ofBasic(username, password));
    }
    final HealthCheckedEndpointGroup endpointGroup = endpointGroupBuilder.build();
    return new ElasticSearch(protocol, username, password, endpointGroup, clientFactory, healthyListener, responseTimeout);
}
Also used : HealthCheckedEndpointGroup(com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroup) HealthCheckedEndpointGroupBuilder(com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroupBuilder) Endpoint(com.linecorp.armeria.client.Endpoint) ClientFactoryBuilder(com.linecorp.armeria.client.ClientFactoryBuilder) InputStream(java.io.InputStream) TrustManagerFactory(javax.net.ssl.TrustManagerFactory) ClientFactory(com.linecorp.armeria.client.ClientFactory) StringUtil(org.apache.skywalking.oap.server.library.util.StringUtil) KeyStore(java.security.KeyStore) SneakyThrows(lombok.SneakyThrows)

Example 2 with HealthCheckedEndpointGroupBuilder

use of com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroupBuilder in project skywalking by apache.

the class ElasticSearchBuilder method build.

@SneakyThrows
public ElasticSearch build() {
    final List<Endpoint> endpoints = this.endpoints.build().stream().filter(StringUtil::isNotBlank).map(Endpoint::parse).collect(Collectors.toList());
    final ClientFactoryBuilder factoryBuilder = ClientFactory.builder().connectTimeout(connectTimeout).idleTimeout(socketTimeout).useHttp2Preface(false).workerGroup(numHttpClientThread > 0 ? numHttpClientThread : NUM_PROC);
    if (StringUtil.isNotBlank(trustStorePath)) {
        final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        final KeyStore truststore = KeyStore.getInstance("jks");
        try (final InputStream is = Files.newInputStream(Paths.get(trustStorePath))) {
            truststore.load(is, trustStorePass.toCharArray());
        }
        trustManagerFactory.init(truststore);
        factoryBuilder.tlsCustomizer(sslContextBuilder -> sslContextBuilder.trustManager(trustManagerFactory));
    }
    final ClientFactory clientFactory = factoryBuilder.build();
    final HealthCheckedEndpointGroupBuilder endpointGroupBuilder = HealthCheckedEndpointGroup.builder(EndpointGroup.of(endpoints), "_cluster/health").protocol(protocol).useGet(true).clientFactory(clientFactory).retryInterval(healthCheckRetryInterval).withClientOptions(options -> {
        options.decorator(LoggingClient.builder().logger(log).newDecorator());
        options.decorator((delegate, ctx, req) -> {
            ctx.logBuilder().name("health-check");
            return delegate.execute(ctx, req);
        });
        return options;
    });
    if (StringUtil.isNotBlank(username) && StringUtil.isNotBlank(password)) {
        endpointGroupBuilder.auth(AuthToken.ofBasic(username, password));
    }
    final HealthCheckedEndpointGroup endpointGroup = endpointGroupBuilder.build();
    return new ElasticSearch(protocol, username, password, endpointGroup, clientFactory, healthyListener, responseTimeout);
}
Also used : HealthCheckedEndpointGroup(com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroup) HealthCheckedEndpointGroupBuilder(com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroupBuilder) Endpoint(com.linecorp.armeria.client.Endpoint) ClientFactoryBuilder(com.linecorp.armeria.client.ClientFactoryBuilder) InputStream(java.io.InputStream) TrustManagerFactory(javax.net.ssl.TrustManagerFactory) ClientFactory(com.linecorp.armeria.client.ClientFactory) StringUtil(org.apache.skywalking.oap.server.library.util.StringUtil) KeyStore(java.security.KeyStore) SneakyThrows(lombok.SneakyThrows)

Aggregations

ClientFactory (com.linecorp.armeria.client.ClientFactory)2 ClientFactoryBuilder (com.linecorp.armeria.client.ClientFactoryBuilder)2 Endpoint (com.linecorp.armeria.client.Endpoint)2 HealthCheckedEndpointGroup (com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroup)2 HealthCheckedEndpointGroupBuilder (com.linecorp.armeria.client.endpoint.healthcheck.HealthCheckedEndpointGroupBuilder)2 InputStream (java.io.InputStream)2 KeyStore (java.security.KeyStore)2 TrustManagerFactory (javax.net.ssl.TrustManagerFactory)2 SneakyThrows (lombok.SneakyThrows)2 StringUtil (org.apache.skywalking.oap.server.library.util.StringUtil)2