Class BalancingIpRoutePlanner

  • All Implemented Interfaces:
    org.apache.http.conn.routing.HttpRoutePlanner

    public class BalancingIpRoutePlanner
    extends AbstractRoutePlanner
    • Constructor Detail

      • BalancingIpRoutePlanner

        public BalancingIpRoutePlanner​(java.util.List<IpBlock> ipBlocks)
        Parameters:
        ipBlocks - the block to perform balancing over.
      • BalancingIpRoutePlanner

        public BalancingIpRoutePlanner​(java.util.List<IpBlock> ipBlocks,
                                       java.util.function.Predicate<java.net.InetAddress> ipFilter)
        Parameters:
        ipBlocks - the block to perform balancing over.
        ipFilter - function to filter out certain IP addresses picked from the IP block, causing another random to be chosen.
      • BalancingIpRoutePlanner

        public BalancingIpRoutePlanner​(java.util.List<IpBlock> ipBlocks,
                                       java.util.function.Predicate<java.net.InetAddress> ipFilter,
                                       boolean handleSearchFailure)
        Parameters:
        ipBlocks - the block to perform balancing over.
        ipFilter - function to filter out certain IP addresses picked from the IP block, causing another random to be chosen.
        handleSearchFailure - whether a search 429 should trigger the ip as failing
    • Method Detail

      • determineAddressPair

        protected Tuple<java.net.InetAddress,​java.net.InetAddress> determineAddressPair​(Tuple<java.net.Inet4Address,​java.net.Inet6Address> remoteAddresses)
                                                                                       throws org.apache.http.HttpException
        Description copied from class: AbstractRoutePlanner
        Determines the local and remote address pair to use
        Specified by:
        determineAddressPair in class AbstractRoutePlanner
        Parameters:
        remoteAddresses - The remote address pair containing IPv4 and IPv6 addresses - which can be null
        Returns:
        a Tuple which contains l = localAddress & r = remoteAddress
        Throws:
        org.apache.http.HttpException - when no route can be determined