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
public class DNSMembershipProvider extends CloudMembershipProvider
AMembershipProviderthat uses DNS to retrieve the members of a cluster.
Configuration example for Kubernetes
server.xml
minimal example for the Service my-tomcat-app-membership, note the selector<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> ...
dns-membership-service.yml
First Tomcat pod minimal example, note the labels that must correspond to the selector in the service.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
tomcat1.yml
Environment variable configurationapiVersion: v1 kind: Pod metadata: name: tomcat1 labels: app: my-tomcat-app spec: containers: - name: tomcat image: tomcat ports: - containerPort: 8080
DNS_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, url
-
Fields inherited from class org.apache.catalina.tribes.membership.MembershipProviderBase
executor, membership, membershipListener, service
-
-
Constructor Summary
Constructors Constructor Description DNSMembershipProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(java.io.Serializable msg, Member sender)Invoked by the channel to determine if the listener will process this message or not.protected Member[]fetchMembers()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, updateMember
-
Methods inherited from class org.apache.catalina.tribes.membership.MembershipProviderBase
getMember, getMembers, hasMembers, setMembershipListener, setMembershipService
-
-
-
-
Method Detail
-
start
public void start(int level) throws java.lang.ExceptionDescription 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:
java.lang.Exception- if an error occurs
-
stop
public boolean stop(int level) throws java.lang.ExceptionDescription 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:
java.lang.Exception- if an error occurs
-
fetchMembers
protected Member[] fetchMembers()
Description copied from class:CloudMembershipProviderFetch current cluster members from the cloud orchestration.- Specified by:
fetchMembersin classCloudMembershipProvider- Returns:
- the member array
-
accept
public boolean accept(java.io.Serializable msg, Member sender)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
-
-