Package com.hazelcast.client
Interface LoadBalancer
- All Known Implementing Classes:
AbstractLoadBalancer
,RandomLB
,RoundRobinLB
,StaticLB
public interface LoadBalancer
LoadBalancer
allows you to send operations to one of a number of endpoints(Members).
It is up to the implementation to use different load balancing policies.
If Client is configured with ClientNetworkConfig.isSmartRouting()
,
only the operations that are not key based will be routed to the endpoint returned by the LoadBalancer. If it is
not ClientNetworkConfig.isSmartRouting()
, LoadBalancer
will not be used.
For configuration see ClientConfig.setLoadBalancer(LoadBalancer)
-
Method Summary
Modifier and Type Method Description default boolean
canGetNextDataMember()
Returns whether this instance supports getting data members through a call tonextDataMember()
.void
init(Cluster cluster, ClientConfig config)
Initializes the LoadBalancer.Member
next()
Returns the next member to route to.default Member
nextDataMember()
Returns the next data member to route to.
-
Method Details
-
init
Initializes the LoadBalancer.- Parameters:
cluster
- the Cluster this LoadBalancer uses to select members from.config
- the ClientConfig.
-
next
Member next()Returns the next member to route to.- Returns:
- Returns the next member or null if no member is available
-
nextDataMember
Returns the next data member to route to.- Returns:
- Returns the next data member or null if no data member is available
- Throws:
UnsupportedOperationException
- if the operation is not supported by this instance
-
canGetNextDataMember
default boolean canGetNextDataMember()Returns whether this instance supports getting data members through a call tonextDataMember()
.This method is used by components that require communication with data members only, such as the SQL engine.
- Returns:
true
if this instance supports getting data members through a call tonextDataMember()
- See Also:
nextDataMember()
-