Package org.elasticsearch.plugins
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 {
@Override
public NetworkService.CustomNameResolver getCustomNameResolver(Settings settings) {
return new YourCustomNameResolverInstance(settings);
}
}
-
Method Summary
Modifier and TypeMethodDescriptiongetCustomNameResolver(Settings settings)Override to add additionalNetworkService.CustomNameResolvers.default Map<String,ElectionStrategy>Allows plugging in election strategies (seeElectionStrategy) that define a customized notion of an election quorum.default BiConsumer<DiscoveryNode,ClusterState>Returns a consumer that validate the initial join cluster state.default Map<String,Supplier<SeedHostsProvider>>getSeedHostProviders(TransportService transportService, NetworkService networkService)Returns providers of seed hosts for discovery.
-
Method Details
-
getCustomNameResolver
Override to add additionalNetworkService.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:network.host: _mycard_ -
getSeedHostProviders
default Map<String,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 (seeDiscoveryModule.DISCOVERY_SEED_PROVIDERS_SETTING), and the value is a supplier to construct the host provider when it is selected for use.- Parameters:
transportService- Use to form theTransportAddressportion of aDiscoveryNodenetworkService- Use to find the publish host address of the current node
-
getJoinValidator
Returns a consumer that validate the initial join cluster state. The validator, unlessnullis called exactly once per join attempt but might be called multiple times during the lifetime of a node. Validators are expected to throw aIllegalStateExceptionif the node and the cluster-state are incompatible. -
getElectionStrategies
Allows plugging in election strategies (seeElectionStrategy) that define a customized notion of an election quorum.
-