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
AMembershipProvider
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> ...
dns-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
tomcat1.yml
apiVersion: 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 boolean
accept(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.void
start(int level)
Start the membership provider.boolean
stop(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.Exception
Description copied from interface:MembershipProvider
Start the membership provider.- Specified by:
start
in interfaceMembershipProvider
- Overrides:
start
in 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.Exception
Description copied from interface:MembershipProvider
Stop the membership provider.- Specified by:
stop
in interfaceMembershipProvider
- Overrides:
stop
in 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:
true
if successful- Throws:
java.lang.Exception
- if an error occurs
-
fetchMembers
protected Member[] fetchMembers()
Description copied from class:CloudMembershipProvider
Fetch current cluster members from the cloud orchestration.- Specified by:
fetchMembers
in classCloudMembershipProvider
- Returns:
- the member array
-
accept
public boolean accept(java.io.Serializable msg, Member sender)
Description copied from interface:ChannelListener
Invoked by the channel to determine if the listener will process this message or not.- Specified by:
accept
in interfaceChannelListener
- Overrides:
accept
in classCloudMembershipProvider
- Parameters:
msg
- Serializablesender
- Member- Returns:
- boolean
-
-