com.hazelcast.spi.discovery.integration

## Interface DiscoveryService

-     public interface DiscoveryService

  The `DiscoveryService` interface defines the basic entry point into the Discovery SPI implementation. If not overridden explicitly the Hazelcast internal `DefaultDiscoveryService` implementation is used. A `DiscoveryService` somehow finds available `DiscoveryStrategy`s inside the classpath and manages their activation or deactivation status.

  This interface is used by system integrators, integrating Hazelcast into their own frameworks or environments, are free to extend or exchange the default implementation based on their needs and requirements.

  Only enabled providers are expected to discover nodes but, depending on the `DiscoveryService` implementation, multiple `DiscoveryStrategy`s might be enabled at the same time (e.g. TCP-IP Joiner with well known addresses and Cloud discovery).
  Since:
    3.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `destroy()` The `start` method is called on system startup to implement simple lifecycle management.
    `Map<String,Object>` | `discoverLocalMetadata()` Returns a map with discovered metadata provided by the runtime environment.
    `Iterable<DiscoveryNode>` | `discoverNodes()` Returns a discovered and filtered, if a `NodeFilter` is setup, set of discovered nodes to connect to.
    `void` | `start()` The `start` method is called on system startup to implement simple lifecycle management.

- - ### Method Detail

    - #### start

          void start()

      The `start` method is called on system startup to implement simple lifecycle management. This method is expected to call `DiscoveryStrategy.start()` on all discovered and start up strategies.

    - #### discoverNodes

          Iterable<DiscoveryNode> discoverNodes()

      Returns a discovered and filtered, if a `NodeFilter` is setup, set of discovered nodes to connect to.
      Returns:
        a set of discovered and filtered nodes

    - #### destroy

          void destroy()

      The `start` method is called on system startup to implement simple lifecycle management. This method is expected to call `DiscoveryStrategy.destroy()` on all discovered and destroy strategies before the service itself will be destroyed.

    - #### discoverLocalMetadata

          Map<String,Object> discoverLocalMetadata()

      Returns a map with discovered metadata provided by the runtime environment. Those information may include, but are not limited, to location information like datacenter, rack, host or additional tags to be used for custom purpose.

      Information discovered from this method are shaded into the `Member`s attributes. Existing attributes will not be overridden, that way local attribute configuration overrides provided metadata.

      The default implementation provides an empty map with no further metadata configured. Returning `null` is not permitted and will most probably result in an `NullPointerException` inside the cluster system.
      Returns:
        a map of discovered metadata as provided by the runtime environment
      Since:
        3.7

Copyright © 2018. All rights reserved.