Class TcpDiscoveryMulticastIpFinder
- java.lang.Object
-
- org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter
-
- org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
-
- org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder
-
- All Implemented Interfaces:
TcpDiscoveryIpFinder
public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder
Multicast-based IP finder.When TCP discovery starts this finder sends multicast request and waits for some time when others nodes reply to this request with messages containing their addresses (time IP finder waits for response and number of attempts to re-send multicast request in case if no replies are received can be configured, see
setResponseWaitTime(int)
andsetAddressRequestAttempts(int)
).In addition to address received via multicast this finder can work with pre-configured list of addresses specified via
TcpDiscoveryVmIpFinder.setAddresses(Collection)
method.Configuration
Mandatory
There are no mandatory configuration parameters.Optional
- Multicast IP address (see
setMulticastGroup(String)
). - Multicast port number (see
setMulticastPort(int)
). - Address response wait time (see
setResponseWaitTime(int)
). - Address request attempts (see
setAddressRequestAttempts(int)
). - Pre-configured addresses (see
TcpDiscoveryVmIpFinder.setAddresses(Collection)
) - Local address (see
setLocalAddress(String)
)
-
-
Field Summary
Fields Modifier and Type Field Description static int
DFLT_ADDR_REQ_ATTEMPTS
Default number of attempts to send multicast address request (value is2
).static String
DFLT_MCAST_GROUP
Default multicast IP address (value is228.1.2.4
).static int
DFLT_MCAST_PORT
Default multicast port number (value is47400
).static int
DFLT_RES_WAIT_TIME
Default time IP finder waits for reply to multicast address request (value is500
).-
Fields inherited from class org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter
ignite
-
-
Constructor Summary
Constructors Constructor Description TcpDiscoveryMulticastIpFinder()
Constructs new IP finder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this IP finder and releases any system resources associated with it.int
getAddressRequestAttempts()
Gets number of attempts to send multicast address request.String
getLocalAddress()
Gets local address that multicast IP finder uses.String
getMulticastGroup()
Gets IP address of multicast group.int
getMulticastPort()
Gets port number which multicast messages are sent to.Collection<InetSocketAddress>
getRegisteredAddresses()
Gets all addresses registered in this finder.int
getResponseWaitTime()
Gets time in milliseconds IP finder waits for reply to multicast address request.int
getTimeToLive()
Set the default time-to-live for multicast packets sent out on this IP finder.void
initializeLocalAddresses(Collection<InetSocketAddress> addrs)
Initializes addresses discovery SPI binds to.void
onSpiContextInitialized(IgniteSpiContext spiCtx)
Callback invoked when SPI context is initialized afterTcpDiscoverySpi.spiStart(String)
method is completed, SPI context can be stored for future access.TcpDiscoveryMulticastIpFinder
setAddressRequestAttempts(int addrReqAttempts)
Sets number of attempts to send multicast address request.void
setIgnite(org.apache.ignite.internal.IgniteEx ignite)
TcpDiscoveryMulticastIpFinder
setLocalAddress(String locAddr)
Sets local host address used by this IP finder.TcpDiscoveryMulticastIpFinder
setMulticastGroup(String mcastGrp)
Sets IP address of multicast group.TcpDiscoveryMulticastIpFinder
setMulticastPort(int mcastPort)
Sets port number which multicast messages are sent to.TcpDiscoveryMulticastIpFinder
setResponseWaitTime(int resWaitTime)
Sets time in milliseconds IP finder waits for reply to multicast address request.TcpDiscoveryMulticastIpFinder
setShared(boolean shared)
Sets shared flag.TcpDiscoveryMulticastIpFinder
setTimeToLive(int ttl)
Set the default time-to-live for multicast packets sent out on this IP finder in order to control the scope of the multicast.String
toString()
-
Methods inherited from class org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
registerAddresses, setAddresses, unregisterAddresses
-
Methods inherited from class org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter
discoveryClientMode, isShared, onSpiContextDestroyed, spiContext
-
-
-
-
Field Detail
-
DFLT_MCAST_GROUP
public static final String DFLT_MCAST_GROUP
Default multicast IP address (value is228.1.2.4
).- See Also:
- Constant Field Values
-
DFLT_MCAST_PORT
public static final int DFLT_MCAST_PORT
Default multicast port number (value is47400
).- See Also:
- Constant Field Values
-
DFLT_RES_WAIT_TIME
public static final int DFLT_RES_WAIT_TIME
Default time IP finder waits for reply to multicast address request (value is500
).- See Also:
- Constant Field Values
-
DFLT_ADDR_REQ_ATTEMPTS
public static final int DFLT_ADDR_REQ_ATTEMPTS
Default number of attempts to send multicast address request (value is2
).- See Also:
- Constant Field Values
-
-
Method Detail
-
setMulticastGroup
@IgniteSpiConfiguration(optional=true) public TcpDiscoveryMulticastIpFinder setMulticastGroup(String mcastGrp)
Sets IP address of multicast group.If not provided, default value is
DFLT_MCAST_GROUP
.- Parameters:
mcastGrp
- Multicast IP address.- Returns:
this
for chaining.
-
setIgnite
@IgniteInstanceResource public void setIgnite(org.apache.ignite.internal.IgniteEx ignite)
- Parameters:
ignite
- Ignite instance.
-
getMulticastGroup
public String getMulticastGroup()
Gets IP address of multicast group.- Returns:
- Multicast IP address.
-
setMulticastPort
@IgniteSpiConfiguration(optional=true) public TcpDiscoveryMulticastIpFinder setMulticastPort(int mcastPort)
Sets port number which multicast messages are sent to.If not provided, default value is
DFLT_MCAST_PORT
.- Parameters:
mcastPort
- Multicast port number.- Returns:
this
for chaining.
-
getMulticastPort
public int getMulticastPort()
Gets port number which multicast messages are sent to.- Returns:
- Port number.
-
setResponseWaitTime
@IgniteSpiConfiguration(optional=true) public TcpDiscoveryMulticastIpFinder setResponseWaitTime(int resWaitTime)
Sets time in milliseconds IP finder waits for reply to multicast address request.If not provided, default value is
DFLT_RES_WAIT_TIME
.- Parameters:
resWaitTime
- Time IP finder waits for reply to multicast address request.- Returns:
this
for chaining.
-
getResponseWaitTime
public int getResponseWaitTime()
Gets time in milliseconds IP finder waits for reply to multicast address request.- Returns:
- Time IP finder waits for reply to multicast address request.
-
setAddressRequestAttempts
@IgniteSpiConfiguration(optional=true) public TcpDiscoveryMulticastIpFinder setAddressRequestAttempts(int addrReqAttempts)
Sets number of attempts to send multicast address request. IP finder re-sends request only in case if no reply for previous request is received.If not provided, default value is
DFLT_ADDR_REQ_ATTEMPTS
.- Parameters:
addrReqAttempts
- Number of attempts to send multicast address request.- Returns:
this
for chaining.
-
getAddressRequestAttempts
public int getAddressRequestAttempts()
Gets number of attempts to send multicast address request. IP finder re-sends request only in case if no reply for previous request is received.- Returns:
- Number of attempts to send multicast address request.
-
setLocalAddress
@IgniteSpiConfiguration(optional=true) public TcpDiscoveryMulticastIpFinder setLocalAddress(String locAddr)
Sets local host address used by this IP finder. If provided address is non-loopback then multicast socket is bound to this interface. If local address is not set or is any local address then IP finder creates multicast sockets for all found non-loopback addresses.If not provided then this property is initialized by the local address set in
TcpDiscoverySpi
configuration.- Parameters:
locAddr
- Local host address.- Returns:
this
for chaining.- See Also:
TcpDiscoverySpi.setLocalAddress(String)
-
getLocalAddress
public String getLocalAddress()
Gets local address that multicast IP finder uses.- Returns:
- Local address.
-
setTimeToLive
@IgniteSpiConfiguration(optional=true) public TcpDiscoveryMulticastIpFinder setTimeToLive(int ttl)
Set the default time-to-live for multicast packets sent out on this IP finder in order to control the scope of the multicast.The TTL has to be in the range
0 <= TTL <= 255
.If TTL is
0
, packets are not transmitted on the network, but may be delivered locally.Default value is
-1
which corresponds to system default value.- Parameters:
ttl
- Time to live.- Returns:
this
for chaining.
-
getTimeToLive
public int getTimeToLive()
Set the default time-to-live for multicast packets sent out on this IP finder.- Returns:
- Time to live.
-
initializeLocalAddresses
public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException
Initializes addresses discovery SPI binds to.- Specified by:
initializeLocalAddresses
in interfaceTcpDiscoveryIpFinder
- Overrides:
initializeLocalAddresses
in classTcpDiscoveryIpFinderAdapter
- Parameters:
addrs
- Addresses discovery SPI binds to.- Throws:
IgniteSpiException
- In case of error.
-
onSpiContextInitialized
public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException
Callback invoked when SPI context is initialized afterTcpDiscoverySpi.spiStart(String)
method is completed, SPI context can be stored for future access.- Specified by:
onSpiContextInitialized
in interfaceTcpDiscoveryIpFinder
- Overrides:
onSpiContextInitialized
in classTcpDiscoveryIpFinderAdapter
- Parameters:
spiCtx
- Spi context.- Throws:
IgniteSpiException
- In case of error.
-
getRegisteredAddresses
public Collection<InetSocketAddress> getRegisteredAddresses()
Gets all addresses registered in this finder.- Specified by:
getRegisteredAddresses
in interfaceTcpDiscoveryIpFinder
- Overrides:
getRegisteredAddresses
in classTcpDiscoveryVmIpFinder
- Returns:
- All known addresses, potentially empty, but never
null
.
-
close
public void close()
Closes this IP finder and releases any system resources associated with it.- Specified by:
close
in interfaceTcpDiscoveryIpFinder
- Overrides:
close
in classTcpDiscoveryIpFinderAdapter
-
setShared
public TcpDiscoveryMulticastIpFinder setShared(boolean shared)
Sets shared flag. Iftrue
then it is expected that IP addresses registered with IP finder will be seen by IP finders on all other nodes.- Overrides:
setShared
in classTcpDiscoveryVmIpFinder
- Parameters:
shared
-true
if this IP finder is shared.- Returns:
this
for chaining.
-
toString
public String toString()
- Overrides:
toString
in classTcpDiscoveryVmIpFinder
-
-