Interface LeaderElector

    • Method Detail

      • run

        Leadership run​(java.lang.String topic,
                       NodeId nodeId)
        Attempts to become leader for a topic.
        Parameters:
        topic - leadership topic
        nodeId - instance identifier of the node
        Returns:
        current Leadership state of the topic
      • withdraw

        void withdraw​(java.lang.String topic)
        Withdraws from leadership race for a topic.
        Parameters:
        topic - leadership topic
      • anoint

        boolean anoint​(java.lang.String topic,
                       NodeId nodeId)
        Attempts to promote a node to leadership displacing the current leader.
        Parameters:
        topic - leadership topic
        nodeId - instance identifier of the new leader
        Returns:
        true if leadership transfer was successfully executed; false if it failed. This operation can return false if the node to be made new leader is not registered to run for election for the topic.
      • promote

        boolean promote​(java.lang.String topic,
                        NodeId nodeId)
        Attempts to promote a node to top of candidate list.
        Parameters:
        topic - leadership topic
        nodeId - instance identifier of the new top candidate
        Returns:
        true if node is now the top candidate. This operation can fail (i.e. return false) if the node is not registered to run for election for the topic.
      • evict

        void evict​(NodeId nodeId)
        Attempts to evict a node from all leadership elections it is registered for.

        If the node the current leader for a topic, this call will force the next candidate (if one exists) to be promoted to leadership.

        Parameters:
        nodeId - node instance identifier
      • getLeadership

        Leadership getLeadership​(java.lang.String topic)
        Returns the Leadership for the specified topic.
        Parameters:
        topic - leadership topic
        Returns:
        current Leadership state of the topic
      • getLeaderships

        java.util.Map<java.lang.String,​Leadership> getLeaderships()
        Returns the current Leaderships for all topics.
        Returns:
        topic name to Leadership mapping
      • addChangeListener

        void addChangeListener​(java.util.function.Consumer<Change<Leadership>> consumer)
        Registers a listener to be notified of Leadership changes for all topics.
        Parameters:
        consumer - listener to add
      • removeChangeListener

        void removeChangeListener​(java.util.function.Consumer<Change<Leadership>> consumer)
        Unregisters a previously registered change notification listener.

        If the specified listener was not previously registered, this operation will be a noop.

        Parameters:
        consumer - listener to remove