Package org.apache.synapse.endpoints
Class DynamicLoadbalanceEndpoint
- java.lang.Object
-
- org.apache.synapse.FaultHandler
-
- org.apache.synapse.endpoints.AbstractEndpoint
-
- org.apache.synapse.endpoints.LoadbalanceEndpoint
-
- org.apache.synapse.endpoints.DynamicLoadbalanceEndpoint
-
- All Implemented Interfaces:
Endpoint
,ManagedLifecycle
,Nameable
,PropertyInclude
,SynapseArtifact
- Direct Known Subclasses:
ServiceDynamicLoadbalanceEndpoint
public class DynamicLoadbalanceEndpoint extends LoadbalanceEndpoint
Represents a dynamic load balance endpoint. The application membership is not static, but discovered through some mechanism such as using a GCF
-
-
Field Summary
Fields Modifier and Type Field Description protected Dispatcher
dispatcher
Dispatcher used for session affinity.protected boolean
sessionAffinity
Flag to enable session affinity based load balancing.protected long
sessionTimeout
-
Fields inherited from class org.apache.synapse.endpoints.AbstractEndpoint
anonymous, artifactContainerName, CHILDREN_JSON_ATT, errorHandler, fileName, initialized, isClusteringEnabled, NAME_JSON_ATT, trace, TYPE_JSON_ATT
-
-
Constructor Summary
Constructors Constructor Description DynamicLoadbalanceEndpoint()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
extractSessionID(MessageContext synCtx, String key)
Dispatcher
getDispatcher()
LoadBalanceMembershipHandler
getLbMembershipHandler()
long
getSessionTimeout()
void
init(SynapseEnvironment synapseEnvironment)
This method should implement the initialization of the implemented parts of the configuration.boolean
isSessionAffinityBasedLB()
void
send(MessageContext synCtx)
Sends the message context according to an endpoint specific behavior.protected void
sendToApplicationMember(MessageContext synCtx, org.apache.axis2.clustering.Member currentMember, DynamicLoadbalanceFaultHandler faultHandler, boolean newSession)
protected void
setCookieHeader(MessageContext synCtx)
void
setDispatcher(Dispatcher dispatcher)
void
setLoadBalanceMembershipHandler(LoadBalanceMembershipHandler lbMembershipHandler)
void
setName(String name)
Set the name of an abstractionvoid
setSessionAffinity(boolean sessionAffinity)
void
setSessionTimeout(long sessionTimeout)
protected void
setupTransportHeaders(MessageContext synCtx)
Adding the X-Forwarded-For/X-Originating-IP headers to the outgoing message.-
Methods inherited from class org.apache.synapse.endpoints.LoadbalanceEndpoint
createJsonRepresentation, destroy, getAlgorithm, getMembers, getNextChild, isBuildMessageAtt, isFailover, isInitialized, onChildEndpointFail, readyToSend, setAlgorithm, setBuildMessageAtt, setBuildMessageAttAvailable, setFailover, setMembers, startApplicationMembershipTimer
-
Methods inherited from class org.apache.synapse.endpoints.AbstractEndpoint
addProperties, addProperty, evaluateProperties, executeEpTypeSpecificFunctions, getArtifactContainerName, getChildren, getCommentsList, getContext, getDefinition, getDescription, getEndpointChildrenAsJson, getErrorHandler, getFileName, getIsEdited, getJsonRepresentation, getMetricsMBean, getName, getParentEndpoint, getProperties, getProperty, getReportingName, handleException, handleException, handleException, informFailure, isAnonymous, isLeafEndpoint, isRetry, isSuspendFault, isTimeout, isTraceOn, isTraceOrDebugOn, logOnChildEndpointFail, logSetter, onFault, onSuccess, prepareForEndpointStatistics, removeProperty, setAdvancedProperties, setAnonymous, setArtifactContainerName, setChildren, setCommentsList, setComponentStatisticsId, setContentAware, setDefinition, setDescription, setEnableMBeanStats, setErrorHandler, setErrorOnMessage, setFileName, setForceBuildMC, setIsEdited, setParentEndpoint, toString, traceOrDebug
-
Methods inherited from class org.apache.synapse.FaultHandler
executeExtendedSynapseHandlerOnFault, getStackTrace, handleFault, handleFault
-
-
-
-
Field Detail
-
sessionAffinity
protected boolean sessionAffinity
Flag to enable session affinity based load balancing.
-
dispatcher
protected Dispatcher dispatcher
Dispatcher used for session affinity.
-
sessionTimeout
protected long sessionTimeout
-
-
Method Detail
-
init
public void init(SynapseEnvironment synapseEnvironment)
Description copied from interface:ManagedLifecycle
This method should implement the initialization of the implemented parts of the configuration.- Specified by:
init
in interfaceManagedLifecycle
- Overrides:
init
in classLoadbalanceEndpoint
- Parameters:
synapseEnvironment
- SynapseEnvironment to be used for initialization
-
setLoadBalanceMembershipHandler
public void setLoadBalanceMembershipHandler(LoadBalanceMembershipHandler lbMembershipHandler)
-
getLbMembershipHandler
public LoadBalanceMembershipHandler getLbMembershipHandler()
-
send
public void send(MessageContext synCtx)
Description copied from interface:Endpoint
Sends the message context according to an endpoint specific behavior.- Specified by:
send
in interfaceEndpoint
- Overrides:
send
in classLoadbalanceEndpoint
- Parameters:
synCtx
- MessageContext to be sent.
-
setCookieHeader
protected void setCookieHeader(MessageContext synCtx)
-
extractSessionID
protected String extractSessionID(MessageContext synCtx, String key)
-
setupTransportHeaders
protected void setupTransportHeaders(MessageContext synCtx)
Adding the X-Forwarded-For/X-Originating-IP headers to the outgoing message.- Parameters:
synCtx
- Current message context
-
setName
public void setName(String name)
Description copied from interface:Nameable
Set the name of an abstraction- Specified by:
setName
in interfaceNameable
- Overrides:
setName
in classAbstractEndpoint
- Parameters:
name
- String Representation of name
-
getDispatcher
public Dispatcher getDispatcher()
-
setDispatcher
public void setDispatcher(Dispatcher dispatcher)
-
getSessionTimeout
public long getSessionTimeout()
-
setSessionTimeout
public void setSessionTimeout(long sessionTimeout)
-
setSessionAffinity
public void setSessionAffinity(boolean sessionAffinity)
-
isSessionAffinityBasedLB
public boolean isSessionAffinityBasedLB()
-
sendToApplicationMember
protected void sendToApplicationMember(MessageContext synCtx, org.apache.axis2.clustering.Member currentMember, DynamicLoadbalanceFaultHandler faultHandler, boolean newSession)
-
-