Class EurekaEndpointGroupBuilder
java.lang.Object
com.linecorp.armeria.client.AbstractClientOptionsBuilder
com.linecorp.armeria.client.AbstractWebClientBuilder
com.linecorp.armeria.client.eureka.EurekaEndpointGroupBuilder
Builds a
EurekaEndpointGroup
.-
Method Summary
Modifier and TypeMethodDescriptionaddHeader(CharSequence name, Object value)
Adds the specified HTTP header.addHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)
Adds the specified HTTP headers.Sets the specifiedappName
.auth(BasicToken token)
Sets the HTTP basic access authentication header usingHttpHeaderNames.AUTHORIZATION
.auth(OAuth1aToken token)
Sets the OAuth Core 1.0 Revision A header usingHttpHeaderNames.AUTHORIZATION
.auth(OAuth2Token token)
Sets the OAuth 2.0 header usingHttpHeaderNames.AUTHORIZATION
.build()
Returns a newly-createdEurekaEndpointGroup
based on the properties set so far.Clears all HTTP-level and RPC-level decorators set so far.decorator(DecoratingHttpClientFunction decorator)
Adds the specified HTTP-leveldecorator
.decorator(Function<? super HttpClient,? extends HttpClient> decorator)
Adds the specified HTTP-leveldecorator
.endpointRemapper(Function<? super Endpoint,? extends EndpointGroup> endpointRemapper)
factory(ClientFactory factory)
Sets theClientFactory
used for creating a client.Enables automatic redirection.followRedirects(RedirectConfig redirectConfig)
Sets theRedirectConfig
to enable automatic redirection.instanceId(String instanceId)
Sets the specifiedinstanceId
.maxResponseLength(long maxResponseLength)
Sets the maximum allowed length of a server response in bytes.option(ClientOption<T> option, T value)
Adds the specifiedClientOption
and itsvalue
.option(ClientOptionValue<T> optionValue)
Adds the specifiedClientOptionValue
.options(ClientOptions options)
Adds the specifiedClientOptions
.options(ClientOptionValue<?>... options)
Adds the specifiedClientOptionValue
s.options(Iterable<ClientOptionValue<?>> options)
Adds the specifiedClientOptionValue
s.Sets the specifiedregions
.Sets the specifiedregions
.registryFetchInterval(Duration registryFetchInterval)
Sets the interval between fetching registry requests.registryFetchIntervalMillis(long registryFetchIntervalMillis)
Sets the interval between fetching registry requests in milliseconds.registryFetchIntervalSeconds(long registryFetchIntervalSeconds)
Deprecated.requestIdGenerator(Supplier<RequestId> requestIdGenerator)
responseTimeout(Duration responseTimeout)
Sets the timeout of a response.responseTimeoutMillis(long responseTimeoutMillis)
Sets the timeout of a response in milliseconds.rpcDecorator(DecoratingRpcClientFunction decorator)
Raises anUnsupportedOperationException
because this builder doesn't support RPC-level but only HTTP-level decorators.rpcDecorator(Function<? super RpcClient,? extends RpcClient> decorator)
Raises anUnsupportedOperationException
because this builder doesn't support RPC-level but only HTTP-level decorators.secureVipAddress(String secureVipAddress)
Sets the specifiedsecureVipAddress
.selectionStrategy(EndpointSelectionStrategy selectionStrategy)
Sets theEndpointSelectionStrategy
of theEurekaEndpointGroup
.setHeader(CharSequence name, Object value)
Sets the specified HTTP header.setHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)
Sets the specified HTTP headers.vipAddress(String vipAddress)
Sets the specifiedvipAddress
.writeTimeout(Duration writeTimeout)
Sets the timeout of a socket write attempt.writeTimeoutMillis(long writeTimeoutMillis)
Sets the timeout of a socket write attempt in milliseconds.Methods inherited from class com.linecorp.armeria.client.AbstractWebClientBuilder
buildWebClient, clientBuilderParams
Methods inherited from class com.linecorp.armeria.client.AbstractClientOptionsBuilder
buildOptions, buildOptions
-
Method Details
-
selectionStrategy
Sets theEndpointSelectionStrategy
of theEurekaEndpointGroup
. -
regions
Sets the specifiedregions
.EurekaEndpointGroup
will retrieve the registry information which belongs to theregions
. -
regions
Sets the specifiedregions
.EurekaEndpointGroup
will retrieve the registry information which belongs to theregions
. -
appName
Sets the specifiedappName
.EurekaEndpointGroup
will retrieve the registry information whose application name is the specifiedappName
.- Throws:
IllegalStateException
- ifvipAddress(String)
orsecureVipAddress(String)
is called already
-
instanceId
Sets the specifiedinstanceId
.EurekaEndpointGroup
will only retrieve the registry information whose instance ID is the specifiedinstanceId
.- Throws:
IllegalStateException
- ifvipAddress(String)
orsecureVipAddress(String)
is called already
-
vipAddress
Sets the specifiedvipAddress
.EurekaEndpointGroup
will retrieve the registry information whose VIP address is the specifiedvipAddress
.- Throws:
IllegalStateException
- ifappName(String)
,instanceId(String)
orsecureVipAddress(String)
is called already
-
secureVipAddress
Sets the specifiedsecureVipAddress
.EurekaEndpointGroup
will retrieve the registry information whose VIP address is the specifiedsecureVipAddress
.- Throws:
IllegalStateException
- ifappName(String)
,instanceId(String)
orvipAddress(String)
is called already
-
registryFetchInterval
Sets the interval between fetching registry requests. 30000L milliseconds is used by default and it's not recommended to modify this value. See fetch-registry. -
registryFetchIntervalSeconds
@Deprecated public EurekaEndpointGroupBuilder registryFetchIntervalSeconds(long registryFetchIntervalSeconds)Deprecated.Sets the interval between fetching registry requests in seconds.30
is used by default and it's not recommended to modify this value. See fetch-registry. -
registryFetchIntervalMillis
Sets the interval between fetching registry requests in milliseconds. 30000L is used by default and it's not recommended to modify this value. See fetch-registry. -
build
Returns a newly-createdEurekaEndpointGroup
based on the properties set so far. Note that ifRetryingClient
was not set usingdecorator(DecoratingHttpClientFunction)
,RetryingClient
is applied automatically using RetryingClient.newDecorator(RetryRule.failsafe(), 3). -
options
Description copied from class:AbstractClientOptionsBuilder
Adds the specifiedClientOptions
.- Overrides:
options
in classAbstractClientOptionsBuilder
-
options
Description copied from class:AbstractClientOptionsBuilder
Adds the specifiedClientOptionValue
s.- Overrides:
options
in classAbstractClientOptionsBuilder
-
options
Description copied from class:AbstractClientOptionsBuilder
Adds the specifiedClientOptionValue
s.- Overrides:
options
in classAbstractClientOptionsBuilder
-
option
Description copied from class:AbstractClientOptionsBuilder
Adds the specifiedClientOption
and itsvalue
.- Overrides:
option
in classAbstractClientOptionsBuilder
-
option
Description copied from class:AbstractClientOptionsBuilder
Adds the specifiedClientOptionValue
.- Overrides:
option
in classAbstractClientOptionsBuilder
-
factory
Description copied from class:AbstractClientOptionsBuilder
Sets theClientFactory
used for creating a client. The default isClientFactory.ofDefault()
.- Overrides:
factory
in classAbstractClientOptionsBuilder
-
writeTimeout
Description copied from class:AbstractClientOptionsBuilder
Sets the timeout of a socket write attempt.- Overrides:
writeTimeout
in classAbstractClientOptionsBuilder
- Parameters:
writeTimeout
- the timeout.0
disables the timeout.
-
writeTimeoutMillis
Description copied from class:AbstractClientOptionsBuilder
Sets the timeout of a socket write attempt in milliseconds.- Overrides:
writeTimeoutMillis
in classAbstractClientOptionsBuilder
- Parameters:
writeTimeoutMillis
- the timeout in milliseconds.0
disables the timeout.
-
responseTimeout
Description copied from class:AbstractClientOptionsBuilder
Sets the timeout of a response.- Overrides:
responseTimeout
in classAbstractClientOptionsBuilder
- Parameters:
responseTimeout
- the timeout.0
disables the timeout.
-
responseTimeoutMillis
Description copied from class:AbstractClientOptionsBuilder
Sets the timeout of a response in milliseconds.- Overrides:
responseTimeoutMillis
in classAbstractClientOptionsBuilder
- Parameters:
responseTimeoutMillis
- the timeout in milliseconds.0
disables the timeout.
-
maxResponseLength
Description copied from class:AbstractClientOptionsBuilder
Sets the maximum allowed length of a server response in bytes.- Overrides:
maxResponseLength
in classAbstractClientOptionsBuilder
- Parameters:
maxResponseLength
- the maximum length in bytes.0
disables the limit.
-
requestIdGenerator
Description copied from class:AbstractClientOptionsBuilder
- Overrides:
requestIdGenerator
in classAbstractClientOptionsBuilder
-
endpointRemapper
public EurekaEndpointGroupBuilder endpointRemapper(Function<? super Endpoint,? extends EndpointGroup> endpointRemapper)Description copied from class:AbstractClientOptionsBuilder
Sets aFunction
that remaps anEndpoint
into anEndpointGroup
. ThisClientOption
is useful when you need to override a single target host into a group of hosts to enable client-side load-balancing, e.g.MyService.Iface client = Clients.newClient("tbinary+http://example.com/api", MyService.Iface.class); EndpointGroup myGroup = EndpointGroup.of(Endpoint.of("node-1.example.com")), Endpoint.of("node-2.example.com"))); MyService.Iface derivedClient = Clients.newDerivedClient(client, options -> { return options.toBuilder() .endpointRemapper(endpoint -> { if (endpoint.host().equals("example.com")) { return myGroup; } else { return endpoint; } }) .build(); }); // This request goes to 'node-1.example.com' or 'node-2.example.com'. derivedClient.call();
Note that the remapping does not occur recursively but only once.
- Overrides:
endpointRemapper
in classAbstractClientOptionsBuilder
- See Also:
ClientOptions.ENDPOINT_REMAPPER
,ClientOptions.endpointRemapper()
-
decorator
public EurekaEndpointGroupBuilder decorator(Function<? super HttpClient,? extends HttpClient> decorator)Description copied from class:AbstractClientOptionsBuilder
Adds the specified HTTP-leveldecorator
.- Overrides:
decorator
in classAbstractClientOptionsBuilder
- Parameters:
decorator
- theFunction
that transforms anHttpClient
to another
-
decorator
Description copied from class:AbstractClientOptionsBuilder
Adds the specified HTTP-leveldecorator
.- Overrides:
decorator
in classAbstractClientOptionsBuilder
- Parameters:
decorator
- theDecoratingHttpClientFunction
that intercepts an invocation
-
rpcDecorator
public EurekaEndpointGroupBuilder rpcDecorator(Function<? super RpcClient,? extends RpcClient> decorator)Description copied from class:AbstractWebClientBuilder
Raises anUnsupportedOperationException
because this builder doesn't support RPC-level but only HTTP-level decorators.- Overrides:
rpcDecorator
in classAbstractWebClientBuilder
- Parameters:
decorator
- theFunction
that transforms anRpcClient
to another
-
rpcDecorator
Description copied from class:AbstractWebClientBuilder
Raises anUnsupportedOperationException
because this builder doesn't support RPC-level but only HTTP-level decorators.- Overrides:
rpcDecorator
in classAbstractWebClientBuilder
- Parameters:
decorator
- theDecoratingRpcClientFunction
that intercepts an invocation
-
clearDecorators
Description copied from class:AbstractClientOptionsBuilder
Clears all HTTP-level and RPC-level decorators set so far.- Overrides:
clearDecorators
in classAbstractClientOptionsBuilder
-
addHeader
Description copied from class:AbstractClientOptionsBuilder
Adds the specified HTTP header.- Overrides:
addHeader
in classAbstractClientOptionsBuilder
-
addHeaders
public EurekaEndpointGroupBuilder addHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)Description copied from class:AbstractClientOptionsBuilder
Adds the specified HTTP headers.- Overrides:
addHeaders
in classAbstractClientOptionsBuilder
-
setHeader
Description copied from class:AbstractClientOptionsBuilder
Sets the specified HTTP header.- Overrides:
setHeader
in classAbstractClientOptionsBuilder
-
setHeaders
public EurekaEndpointGroupBuilder setHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)Description copied from class:AbstractClientOptionsBuilder
Sets the specified HTTP headers.- Overrides:
setHeaders
in classAbstractClientOptionsBuilder
-
auth
Description copied from class:AbstractClientOptionsBuilder
Sets the HTTP basic access authentication header usingHttpHeaderNames.AUTHORIZATION
.- Overrides:
auth
in classAbstractClientOptionsBuilder
-
auth
Description copied from class:AbstractClientOptionsBuilder
Sets the OAuth Core 1.0 Revision A header usingHttpHeaderNames.AUTHORIZATION
.- Overrides:
auth
in classAbstractClientOptionsBuilder
-
auth
Description copied from class:AbstractClientOptionsBuilder
Sets the OAuth 2.0 header usingHttpHeaderNames.AUTHORIZATION
.- Overrides:
auth
in classAbstractClientOptionsBuilder
-
followRedirects
Description copied from class:AbstractClientOptionsBuilder
Enables automatic redirection.- Overrides:
followRedirects
in classAbstractClientOptionsBuilder
-
followRedirects
Description copied from class:AbstractClientOptionsBuilder
Sets theRedirectConfig
to enable automatic redirection.- Overrides:
followRedirects
in classAbstractClientOptionsBuilder
-
registryFetchIntervalMillis(long)
.