Class EurekaEndpointGroupBuilder
java.lang.Object
com.linecorp.armeria.client.AbstractClientOptionsBuilder
com.linecorp.armeria.client.AbstractWebClientBuilder
com.linecorp.armeria.client.eureka.EurekaEndpointGroupBuilder
public final class EurekaEndpointGroupBuilder extends AbstractWebClientBuilder
Builds a
EurekaEndpointGroup
.-
Method Summary
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. 30L is used by default and it's not recommended to modify this value. See fetch-registry. -
registryFetchIntervalSeconds
Sets the interval between fetching registry requests in seconds. 30L 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:
ClientOption.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:AbstractClientOptionsBuilder
Adds the specified RPC-leveldecorator
.- Overrides:
rpcDecorator
in classAbstractWebClientBuilder
- Parameters:
decorator
- theFunction
that transforms anRpcClient
to another
-
rpcDecorator
Description copied from class:AbstractClientOptionsBuilder
Adds the specified RPC-leveldecorator
.- Overrides:
rpcDecorator
in classAbstractWebClientBuilder
- Parameters:
decorator
- theDecoratingRpcClientFunction
that intercepts an invocation
-
addHttpHeader
Description copied from class:AbstractClientOptionsBuilder
Adds the specified HTTP header.- Overrides:
addHttpHeader
in classAbstractClientOptionsBuilder
-
addHttpHeaders
public EurekaEndpointGroupBuilder addHttpHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> httpHeaders)Description copied from class:AbstractClientOptionsBuilder
Adds the specified HTTP headers.- Overrides:
addHttpHeaders
in classAbstractClientOptionsBuilder
-
setHttpHeader
Description copied from class:AbstractClientOptionsBuilder
Sets the specified HTTP header.- Overrides:
setHttpHeader
in classAbstractClientOptionsBuilder
-
setHttpHeaders
public EurekaEndpointGroupBuilder setHttpHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> httpHeaders)Description copied from class:AbstractClientOptionsBuilder
Sets the specified HTTP headers.- Overrides:
setHttpHeaders
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
-