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 DispatcherdispatcherDispatcher used for session affinity.protected booleansessionAffinityFlag to enable session affinity based load balancing.protected longsessionTimeout-
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 StringextractSessionID(MessageContext synCtx, String key)DispatchergetDispatcher()LoadBalanceMembershipHandlergetLbMembershipHandler()longgetSessionTimeout()voidinit(SynapseEnvironment synapseEnvironment)This method should implement the initialization of the implemented parts of the configuration.booleanisSessionAffinityBasedLB()voidsend(MessageContext synCtx)Sends the message context according to an endpoint specific behavior.protected voidsendToApplicationMember(MessageContext synCtx, org.apache.axis2.clustering.Member currentMember, DynamicLoadbalanceFaultHandler faultHandler, boolean newSession)protected voidsetCookieHeader(MessageContext synCtx)voidsetDispatcher(Dispatcher dispatcher)voidsetLoadBalanceMembershipHandler(LoadBalanceMembershipHandler lbMembershipHandler)voidsetName(String name)Set the name of an abstractionvoidsetSessionAffinity(boolean sessionAffinity)voidsetSessionTimeout(long sessionTimeout)protected voidsetupTransportHeaders(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, getValue, 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, setValue, 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:ManagedLifecycleThis method should implement the initialization of the implemented parts of the configuration.- Specified by:
initin interfaceManagedLifecycle- Overrides:
initin 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:EndpointSends the message context according to an endpoint specific behavior.- Specified by:
sendin interfaceEndpoint- Overrides:
sendin 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:NameableSet the name of an abstraction- Specified by:
setNamein interfaceNameable- Overrides:
setNamein 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)
-
-