Package com.rabbitmq.client
Class DnsSrvRecordAddressResolver
- java.lang.Object
-
- com.rabbitmq.client.DnsSrvRecordAddressResolver
-
- All Implemented Interfaces:
AddressResolver
public class DnsSrvRecordAddressResolver extends Object implements AddressResolver
AddressResolver
that resolves addresses against a DNS SRV request. SRV records contain the hostname and the port for a given service. They also support priorities, to give precedence to a given host over other hosts. Note the hosts returned by the SRV query must be resolvable by the DNS servers of the underlying platform (or the default ones specified for this Java process). This class does not issue a query for A records after the SRV query. This implementation returns the highest-priority records first. This behavior can be changed by overriding thesort
method. This implementation uses internally thecom.sun.jndi.dns.DnsContextFactory
class for the DNS query. The first returned address is used when automatic recovery is NOT enabled at theConnectionFactory
level. When automatic recovery is enabled, a random address will be picked up from the returned list ofAddress
es.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DnsSrvRecordAddressResolver.SrvRecord
-
Constructor Summary
Constructors Constructor Description DnsSrvRecordAddressResolver(String service)
DnsSrvRecordAddressResolver(String service, String dnsUrls)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<Address>
getAddresses()
Get the potentialAddress
es to connect to.protected List<DnsSrvRecordAddressResolver.SrvRecord>
lookupSrvRecords(String service, String dnsUrls)
protected DnsSrvRecordAddressResolver.SrvRecord
mapSrvRecord(String srvResult)
protected List<DnsSrvRecordAddressResolver.SrvRecord>
sort(List<DnsSrvRecordAddressResolver.SrvRecord> records)
-
-
-
Method Detail
-
getAddresses
public List<Address> getAddresses() throws IOException
Description copied from interface:AddressResolver
Get the potentialAddress
es to connect to.- Specified by:
getAddresses
in interfaceAddressResolver
- Returns:
- candidate
Address
es - Throws:
IOException
- if it encounters a problem
-
lookupSrvRecords
protected List<DnsSrvRecordAddressResolver.SrvRecord> lookupSrvRecords(String service, String dnsUrls) throws IOException
- Throws:
IOException
-
mapSrvRecord
protected DnsSrvRecordAddressResolver.SrvRecord mapSrvRecord(String srvResult)
-
sort
protected List<DnsSrvRecordAddressResolver.SrvRecord> sort(List<DnsSrvRecordAddressResolver.SrvRecord> records)
-
-