Class CloudMembershipProvider
java.lang.Object
org.apache.catalina.tribes.membership.MembershipProviderBase
org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider
- All Implemented Interfaces:
ChannelListener, Heartbeat, MembershipProvider
- Direct Known Subclasses:
DNSMembershipProvider, KubernetesMembershipProvider
public abstract class CloudMembershipProvider
extends MembershipProviderBase
implements Heartbeat, ChannelListener
Abstract base class for cloud-based membership providers.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intConnection timeout in milliseconds.protected static final StringPrefix for custom environment variables.protected longMember expiration time in milliseconds.HTTP headers for cloud API requests.protected StringThe local IP address.protected intThe local port number.protected intRead timeout in milliseconds.protected static final StringManagerString manager for this class.protected InstantThe time when this provider started.protected StreamProviderThe provider for cloud API streams.protected StringThe URL for the cloud membership service.Fields inherited from class MembershipProviderBase
executor, membership, membershipListener, service -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaccept(Serializable msg, Member sender) Invoked by the channel to determine if the listener will process this message or not.protected static byte[]digest(byte[] input) Thread safe MD5 digest.protected abstract Member[]Fetch current cluster members from the cloud orchestration.protected static StringGet value of environment variable.protected StringGet the Kubernetes namespace, or "tomcat" if the Kubernetes environment variable cannot be found (with a warning log about the missing namespace).voidHeartbeat invocation for resources cleanup etcvoidinit(Properties properties) Initialize the membership provider with the specified configuration.voidmessageReceived(Serializable msg, Member sender) Receive a message from the channelvoidstart(int level) Start the membership provider.booleanstop(int level) Stop the membership provider.protected voidupdateMember(Member member, boolean add) Add or remove specified member.Methods inherited from class MembershipProviderBase
getMember, getMembers, hasMembers, setMembershipListener, setMembershipService
-
Field Details
-
sm
String manager for this class. -
CUSTOM_ENV_PREFIX
-
url
The URL for the cloud membership service. -
streamProvider
The provider for cloud API streams. -
connectionTimeout
protected int connectionTimeoutConnection timeout in milliseconds. -
readTimeout
protected int readTimeoutRead timeout in milliseconds. -
startTime
The time when this provider started. -
headers
-
localIp
The local IP address. -
port
protected int portThe local port number. -
expirationTime
protected long expirationTimeMember expiration time in milliseconds.
-
-
Constructor Details
-
CloudMembershipProvider
public CloudMembershipProvider()Default constructor.
-
-
Method Details
-
digest
protected static byte[] digest(byte[] input) Thread safe MD5 digest.- Parameters:
input- The bytes to digest- Returns:
- The MD5 digest for the given input
-
getEnv
-
getNamespace
Get the Kubernetes namespace, or "tomcat" if the Kubernetes environment variable cannot be found (with a warning log about the missing namespace).- Returns:
- the namespace
-
init
Description copied from interface:MembershipProviderInitialize the membership provider with the specified configuration.- Specified by:
initin interfaceMembershipProvider- Overrides:
initin classMembershipProviderBase- Parameters:
properties- configuration- Throws:
IOException
-
start
Description copied from interface:MembershipProviderStart the membership provider.- Specified by:
startin interfaceMembershipProvider- Parameters:
level- the readiness level- Channel.DEFAULT - will start all services
- Channel.MBR_RX_SEQ - starts the membership receiver
- Channel.MBR_TX_SEQ - starts the membership broadcaster
- Throws:
Exception- if an error occurs
-
stop
Description copied from interface:MembershipProviderStop the membership provider.- Specified by:
stopin interfaceMembershipProvider- Parameters:
level- the readiness level- Channel.DEFAULT - will stop all services
- Channel.MBR_RX_SEQ - stops the membership receiver
- Channel.MBR_TX_SEQ - stops the membership broadcaster
- Returns:
trueif successful- Throws:
Exception- if an error occurs
-
heartbeat
-
fetchMembers
Fetch current cluster members from the cloud orchestration.- Returns:
- the member array
-
updateMember
Add or remove specified member.- Parameters:
member- the member to addadd- true if the member is added, false otherwise
-
messageReceived
Description copied from interface:ChannelListenerReceive a message from the channel- Specified by:
messageReceivedin interfaceChannelListener- Parameters:
msg- Serializablesender- - the source of the message
-
accept
Description copied from interface:ChannelListenerInvoked by the channel to determine if the listener will process this message or not.- Specified by:
acceptin interfaceChannelListener- Parameters:
msg- Serializablesender- Member- Returns:
- boolean
-