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
  • Field Details

    • sm

      protected static final StringManager sm
    • CUSTOM_ENV_PREFIX

      protected static final String CUSTOM_ENV_PREFIX
      See Also:
    • url

      protected String url
    • streamProvider

      protected StreamProvider streamProvider
    • connectionTimeout

      protected int connectionTimeout
    • readTimeout

      protected int readTimeout
    • startTime

      protected Instant startTime
    • md5

      protected MessageDigest md5
    • headers

      protected Map<String,String> headers
    • localIp

      protected String localIp
    • port

      protected int port
    • expirationTime

      protected long expirationTime
  • Constructor Details

    • CloudMembershipProvider

      public CloudMembershipProvider()
  • Method Details

    • getEnv

      protected static String getEnv(String... keys)
      Get value of environment variable.
      Parameters:
      keys - the environment variables
      Returns:
      the env variables values, or null if not found
    • getNamespace

      protected String 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

      public void init(Properties properties) throws IOException
      Description copied from interface: MembershipProvider
      Initialize the membership provider with the specified configuration.
      Specified by:
      init in interface MembershipProvider
      Overrides:
      init in class MembershipProviderBase
      Parameters:
      properties - configuration
      Throws:
      IOException
    • start

      public void start(int level) throws Exception
      Description copied from interface: MembershipProvider
      Start the membership provider.
      Specified by:
      start in interface MembershipProvider
      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

      public boolean stop(int level) throws Exception
      Description copied from interface: MembershipProvider
      Stop the membership provider.
      Specified by:
      stop in interface MembershipProvider
      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:
      Exception - if an error occurs
    • heartbeat

      public void heartbeat()
      Description copied from interface: Heartbeat
      Heartbeat invocation for resources cleanup etc
      Specified by:
      heartbeat in interface Heartbeat
    • fetchMembers

      protected abstract Member[] fetchMembers()
      Fetch current cluster members from the cloud orchestration.
      Returns:
      the member array
    • updateMember

      protected void updateMember(Member member, boolean add)
      Add or remove specified member.
      Parameters:
      member - the member to add
      add - true if the member is added, false otherwise
    • messageReceived

      public void messageReceived(Serializable msg, Member sender)
      Description copied from interface: ChannelListener
      Receive a message from the channel
      Specified by:
      messageReceived in interface ChannelListener
      Parameters:
      msg - Serializable
      sender - - the source of the message
    • accept

      public boolean accept(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 interface ChannelListener
      Parameters:
      msg - Serializable
      sender - Member
      Returns:
      boolean