Package com.tangosol.net
Class SimpleServiceLoadBalancer<S extends Service,T extends ServiceLoad>
java.lang.Object
com.tangosol.util.Base
com.tangosol.net.AbstractServiceLoadBalancer<S,T>
com.tangosol.net.SimpleServiceLoadBalancer<S,T>
- All Implemented Interfaces:
ServiceLoadBalancer<S,
,T> Comparator<T>
- Direct Known Subclasses:
DefaultProxyServiceLoadBalancer
public class SimpleServiceLoadBalancer<S extends Service,T extends ServiceLoad>
extends AbstractServiceLoadBalancer<S,T>
A simple ServiceLoadBalancer implementation.
- Author:
- jh 2010.12.07
-
Nested Class Summary
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
Field Summary
Modifier and TypeFieldDescriptionA Map of ServiceLoad objects keyed by their associated Member.A SortedMap of List of Member objects keyed by their associated ServiceLoad.Fields inherited from class com.tangosol.net.AbstractServiceLoadBalancer
m_service
-
Constructor Summary
ConstructorDescriptionDefault constructor.SimpleServiceLoadBalancer
(Comparator<T> comparator) Create a new SimpleServiceLoadBalancer that will order ServiceLoad objects using the specified Comparator. -
Method Summary
Modifier and TypeMethodDescriptionint
Compare to ServerLoad objects.getMemberList
(Member client) Called by the Service when a new client connects to obtain an ordered list of Members to which the new client should be redirected.void
Update the load balancing strategy in response to a change in a Service utilization.Methods inherited from class com.tangosol.net.AbstractServiceLoadBalancer
getLocalMember, getService, init, isLocalMember
Methods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
m_mapLoad
A Map of ServiceLoad objects keyed by their associated Member. -
m_mapMember
A SortedMap of List of Member objects keyed by their associated ServiceLoad.
-
-
Constructor Details
-
SimpleServiceLoadBalancer
public SimpleServiceLoadBalancer()Default constructor. -
SimpleServiceLoadBalancer
Create a new SimpleServiceLoadBalancer that will order ServiceLoad objects using the specified Comparator. If null, the natural ordering of the ServiceLoad objects will be used.- Parameters:
comparator
- the Comparator used to order ServiceLoad objects
-
-
Method Details
-
update
Update the load balancing strategy in response to a change in a Service utilization.- Parameters:
member
- the Member for which the utilization changedload
- the updated ServiceLoad; if null, the utilization for the specified Member is unknown (e.g. when the Service on the specified Member leaves the cluster)
-
getMemberList
Called by the Service when a new client connects to obtain an ordered list of Members to which the new client should be redirected. If the returned list is null, empty, or contains a single Member that is the "local" Member, the client will remain connected to the calling Service.- Parameters:
client
- the Member object that represents the remote client- Returns:
- the ordered list of Member objects to which the client should be redirected
-
compare
Description copied from interface:ServiceLoadBalancer
Compare to ServerLoad objects.- Parameters:
load1
- the first ServiceLoadload2
- the second ServiceLoad- Returns:
- a negative integer, zero, or a positive integer indicating if load1 is less then, equal, or greater then load2
-