Class MultipleAddresses
- java.lang.Object
-
- org.apache.zookeeper.server.quorum.MultipleAddresses
-
public final class MultipleAddresses extends java.lang.Object
This class allows to store several quorum and electing addresses. See ZOOKEEPER-3188 for a discussion of this feature.
-
-
Field Summary
Fields Modifier and Type Field Description static java.time.Duration
DEFAULT_TIMEOUT
-
Constructor Summary
Constructors Constructor Description MultipleAddresses()
MultipleAddresses(java.net.InetSocketAddress address)
MultipleAddresses(java.util.Collection<java.net.InetSocketAddress> addresses)
MultipleAddresses(java.util.Collection<java.net.InetSocketAddress> addresses, java.time.Duration timeout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAddress(java.net.InetSocketAddress address)
boolean
equals(java.lang.Object o)
java.util.Set<java.net.InetSocketAddress>
getAllAddresses()
Returns all addresses in an unmodifiable set.java.util.List<java.lang.String>
getAllHostStrings()
Returns distinct list of all host stringsjava.util.List<java.lang.Integer>
getAllPorts()
Returns all portsjava.util.Set<java.net.InetSocketAddress>
getAllReachableAddresses()
Returns a set of all reachable addresses.java.util.Set<java.net.InetSocketAddress>
getAllReachableAddressesOrAll()
Returns a set of all reachable addresses.java.net.InetSocketAddress
getOne()
Returns an address from the set.java.net.InetSocketAddress
getReachableAddress()
Returns a reachable address.java.net.InetSocketAddress
getReachableOrOne()
Returns a reachable address or an arbitrary one, if none is reachable.java.util.Set<java.net.InetSocketAddress>
getWildcardAddresses()
Returns wildcard addresses for all portsint
hashCode()
boolean
isEmpty()
void
recreateSocketAddresses()
Performs a parallel DNS lookup for all addresses.int
size()
Returns the number of addresses in the set.java.lang.String
toString()
-
-
-
Constructor Detail
-
MultipleAddresses
public MultipleAddresses()
-
MultipleAddresses
public MultipleAddresses(java.util.Collection<java.net.InetSocketAddress> addresses)
-
MultipleAddresses
public MultipleAddresses(java.net.InetSocketAddress address)
-
MultipleAddresses
public MultipleAddresses(java.util.Collection<java.net.InetSocketAddress> addresses, java.time.Duration timeout)
-
-
Method Detail
-
isEmpty
public boolean isEmpty()
-
getAllAddresses
public java.util.Set<java.net.InetSocketAddress> getAllAddresses()
Returns all addresses in an unmodifiable set.- Returns:
- set of all InetSocketAddress
-
getWildcardAddresses
public java.util.Set<java.net.InetSocketAddress> getWildcardAddresses()
Returns wildcard addresses for all ports- Returns:
- set of InetSocketAddress with wildcards for all ports
-
getAllPorts
public java.util.List<java.lang.Integer> getAllPorts()
Returns all ports- Returns:
- list of all ports
-
getAllHostStrings
public java.util.List<java.lang.String> getAllHostStrings()
Returns distinct list of all host strings- Returns:
- list of all hosts
-
addAddress
public void addAddress(java.net.InetSocketAddress address)
-
getReachableAddress
public java.net.InetSocketAddress getReachableAddress() throws java.net.NoRouteToHostException
Returns a reachable address. If none is reachable than throws exception. The function is nondeterministic in the sense that the result of calling this function twice with the same set of reachable addresses might lead to different results.- Returns:
- address which is reachable.
- Throws:
java.net.NoRouteToHostException
- if none of the addresses are reachable
-
getAllReachableAddresses
public java.util.Set<java.net.InetSocketAddress> getAllReachableAddresses()
Returns a set of all reachable addresses. If none is reachable than returns empty set.- Returns:
- all addresses which are reachable.
-
getAllReachableAddressesOrAll
public java.util.Set<java.net.InetSocketAddress> getAllReachableAddressesOrAll()
Returns a set of all reachable addresses. If none is reachable than returns all addresses.- Returns:
- all reachable addresses, or all addresses if none is reachable.
-
getReachableOrOne
public java.net.InetSocketAddress getReachableOrOne()
Returns a reachable address or an arbitrary one, if none is reachable. It throws an exception if there are no addresses registered. The function is nondeterministic in the sense that the result of calling this function twice with the same set of reachable addresses might lead to different results.- Returns:
- address which is reachable or fist one.
- Throws:
java.util.NoSuchElementException
- if there is no address registered
-
recreateSocketAddresses
public void recreateSocketAddresses()
Performs a parallel DNS lookup for all addresses. If the DNS lookup fails, then address remain unmodified.
-
getOne
public java.net.InetSocketAddress getOne()
Returns an address from the set.- Returns:
- address from a set.
- Throws:
java.util.NoSuchElementException
- if there is no address registered
-
size
public int size()
Returns the number of addresses in the set.- Returns:
- the number of addresses.
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-