Package com.rabbitmq.client
Class DnsSrvRecordAddressResolver
- java.lang.Object
-
- com.rabbitmq.client.DnsSrvRecordAddressResolver
-
- All Implemented Interfaces:
AddressResolver
public class DnsSrvRecordAddressResolver extends Object implements AddressResolver
AddressResolverthat 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 thesortmethod. This implementation uses internally thecom.sun.jndi.dns.DnsContextFactoryclass for the DNS query. The first returned address is used when automatic recovery is NOT enabled at theConnectionFactorylevel. When automatic recovery is enabled, a random address will be picked up from the returned list ofAddresses.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDnsSrvRecordAddressResolver.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 potentialAddresses to connect to.protected List<DnsSrvRecordAddressResolver.SrvRecord>lookupSrvRecords(String service, String dnsUrls)protected DnsSrvRecordAddressResolver.SrvRecordmapSrvRecord(String srvResult)protected List<DnsSrvRecordAddressResolver.SrvRecord>sort(List<DnsSrvRecordAddressResolver.SrvRecord> records)
-
-
-
Method Detail
-
getAddresses
public List<Address> getAddresses() throws IOException
Description copied from interface:AddressResolverGet the potentialAddresses to connect to.- Specified by:
getAddressesin interfaceAddressResolver- Returns:
- candidate
Addresses - 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)
-
-