Interface DiscoveryPlugin

  • public interface DiscoveryPlugin
    An additional extension point for Plugins that extends Elasticsearch's discovery functionality. To add an additional NetworkService.CustomNameResolver just implement the interface and implement the getCustomNameResolver(Settings) method:
     public class MyDiscoveryPlugin extends Plugin implements DiscoveryPlugin {
         public NetworkService.CustomNameResolver getCustomNameResolver(Settings settings) {
             return new YourCustomNameResolverInstance(settings);
    • Method Detail

      • getCustomNameResolver

        default NetworkService.CustomNameResolver getCustomNameResolver​(Settings settings)
        Override to add additional NetworkService.CustomNameResolvers. This can be handy if you want to provide your own Network interface name like _mycard_ and implement by yourself the logic to get an actual IP address/hostname based on this name. For example: you could call a third party service (an API) to resolve _mycard_. Then you could define in elasticsearch.yml settings like:
      • getSeedHostProviders

        default java.util.Map<java.lang.String,​java.util.function.Supplier<SeedHostsProvider>> getSeedHostProviders​(TransportService transportService,
                                                                                                                          NetworkService networkService)
        Returns providers of seed hosts for discovery. The key of the returned map is the name of the host provider (see DiscoveryModule.DISCOVERY_SEED_PROVIDERS_SETTING), and the value is a supplier to construct the host provider when it is selected for use.
        transportService - Use to form the TransportAddress portion of a DiscoveryNode
        networkService - Use to find the publish host address of the current node
      • getJoinValidator

        default java.util.function.BiConsumer<DiscoveryNode,​ClusterState> getJoinValidator()
        Returns a consumer that validate the initial join cluster state. The validator, unless null is called exactly once per join attempt but might be called multiple times during the lifetime of a node. Validators are expected to throw a IllegalStateException if the node and the cluster-state are incompatible.
      • getElectionStrategies

        default java.util.Map<java.lang.String,​ElectionStrategy> getElectionStrategies()
        Allows plugging in election strategies (see ElectionStrategy) that define a customized notion of an election quorum.