Package com.hazelcast.aws
Class AwsDiscoveryStrategyFactory
java.lang.Object
com.hazelcast.aws.AwsDiscoveryStrategyFactory
- All Implemented Interfaces:
DiscoveryStrategyFactory
Factory class which returns
AwsDiscoveryStrategy to Discovery SPI-
Nested Class Summary
Nested classes/interfaces inherited from interface com.hazelcast.spi.discovery.DiscoveryStrategyFactory
DiscoveryStrategyFactory.DiscoveryStrategyLevel -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionLevel of the discovery strategy.Returns a set of the expected configuration properties.Class<? extends DiscoveryStrategy>Returns the type of theDiscoveryStrategyitself.booleanChecks if Hazelcast is running on an AWS EC2 instance.newDiscoveryStrategy(DiscoveryNode discoveryNode, ILogger logger, Map<String, Comparable> properties) Instantiates a new instance of theDiscoveryStrategywith the given configuration properties.
-
Constructor Details
-
AwsDiscoveryStrategyFactory
public AwsDiscoveryStrategyFactory()
-
-
Method Details
-
getDiscoveryStrategyType
Description copied from interface:DiscoveryStrategyFactoryReturns the type of theDiscoveryStrategyitself.- Specified by:
getDiscoveryStrategyTypein interfaceDiscoveryStrategyFactory- Returns:
- the type of the discovery strategy
-
newDiscoveryStrategy
public DiscoveryStrategy newDiscoveryStrategy(DiscoveryNode discoveryNode, ILogger logger, Map<String, Comparable> properties) Description copied from interface:DiscoveryStrategyFactoryInstantiates a new instance of theDiscoveryStrategywith the given configuration properties. The providedHazelcastInstancecan be used to register instances in a service registry whenever the discovery strategy is started.- Specified by:
newDiscoveryStrategyin interfaceDiscoveryStrategyFactory- Parameters:
discoveryNode- the current localDiscoveryNode, representing the local connection information if running on a Hazelcast member, otherwise on Hazelcast clients alwaysnulllogger- the logger instanceproperties- the properties parsed from the configuration- Returns:
- a new instance of the discovery strategy
-
getConfigurationProperties
Description copied from interface:DiscoveryStrategyFactoryReturns a set of the expected configuration properties. These properties contain information about the value type of the property, if it is required and a possible validator to automatically test and convert values from the XML configuration.- Specified by:
getConfigurationPropertiesin interfaceDiscoveryStrategyFactory- Returns:
- a set of expected configuration properties
-
isAutoDetectionApplicable
public boolean isAutoDetectionApplicable()Checks if Hazelcast is running on an AWS EC2 instance.Note that this method returns
falsefor any ECS environment, since currently there is no way to autoconfigure Hazelcast network interfaces (required for ECS).To check if Hazelcast is running on EC2, we first check that the machine uuid starts with "ec2" or "EC2". There is a small chance that a non-AWS machine has uuid starting with the mentioned prefix. That is why, to be sure, we make an API call to a local, non-routable address http://169.254.169.254/latest/dynamic/instance-identity/. Finally, we also check if an IAM Role is attached to the EC2 instance, because without any IAM Role the Hazelcast AWS discovery won't work.
- Specified by:
isAutoDetectionApplicablein interfaceDiscoveryStrategyFactory- Returns:
- true if running on EC2 Instance which has an IAM Role attached
- See Also:
-
discoveryStrategyLevel
Description copied from interface:DiscoveryStrategyFactoryLevel of the discovery strategy.- Specified by:
discoveryStrategyLevelin interfaceDiscoveryStrategyFactory
-