Class DNSMembershipProvider
java.lang.Object
org.apache.catalina.tribes.membership.MembershipProviderBase
org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider
org.apache.catalina.tribes.membership.cloud.DNSMembershipProvider
- All Implemented Interfaces:
ChannelListener,Heartbeat,MembershipProvider
A
MembershipProvider that uses DNS to retrieve the members of a cluster.Configuration example for Kubernetes
server.xml
<Server ...
<Service ...
<Engine ...
<Host ...
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.cloud.CloudMembershipService"
membershipProviderClassName="org.apache.catalina.tribes.membership.cloud.DNSMembershipProvider"/>
</Channel>
</Cluster>
...
minimal example for the Service my-tomcat-app-membership, note the selectordns-membership-service.yml
apiVersion: v1
kind: Service
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
description: "The service for tomcat cluster membership."
name: my-tomcat-app-membership
spec:
clusterIP: None
selector:
app: my-tomcat-app
First Tomcat pod minimal example, note the labels that must correspond to the
selector in the service.tomcat1.yml
apiVersion: v1
kind: Pod
metadata:
name: tomcat1
labels:
app: my-tomcat-app
spec:
containers:
- name: tomcat
image: tomcat
ports:
- containerPort: 8080
Environment variable configurationDNS_MEMBERSHIP_SERVICE_NAME=my-tomcat-app-membership -
Field Summary
Fields inherited from class org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider
connectionTimeout, CUSTOM_ENV_PREFIX, expirationTime, headers, localIp, md5, port, readTimeout, sm, startTime, streamProvider, urlFields inherited from class org.apache.catalina.tribes.membership.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 Member[]Fetch current cluster members from the cloud orchestration.voidstart(int level) Start the membership provider.booleanstop(int level) Stop the membership provider.Methods inherited from class org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider
getEnv, getNamespace, heartbeat, init, messageReceived, updateMemberMethods inherited from class org.apache.catalina.tribes.membership.MembershipProviderBase
getMember, getMembers, hasMembers, setMembershipListener, setMembershipService
-
Constructor Details
-
DNSMembershipProvider
public DNSMembershipProvider()
-
-
Method Details
-
start
Description copied from interface:MembershipProviderStart the membership provider.- Specified by:
startin interfaceMembershipProvider- Overrides:
startin classCloudMembershipProvider- 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- Overrides:
stopin classCloudMembershipProvider- 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
-
fetchMembers
Description copied from class:CloudMembershipProviderFetch current cluster members from the cloud orchestration.- Specified by:
fetchMembersin classCloudMembershipProvider- Returns:
- the member array
-
accept
Description copied from interface:ChannelListenerInvoked by the channel to determine if the listener will process this message or not.- Specified by:
acceptin interfaceChannelListener- Overrides:
acceptin classCloudMembershipProvider- Parameters:
msg- Serializablesender- Member- Returns:
- boolean
-