consul-resolver
Version:
A load balancer for Consul services with Redis-based metrics
21 lines (20 loc) • 846 B
TypeScript
import Redis from "ioredis";
import { SelectionAlgorithm, SrvRecord } from "../types";
export declare class DNSManager {
private redis;
private cachePrefix;
private cacheTTL;
private cacheEnabled;
private debug;
private dnsEndpoints?;
private dnsTimeout?;
private dnsRetries?;
constructor(redis: Redis | undefined, cachePrefix: string, cacheTTL: number, cacheEnabled: boolean, debug: boolean, dnsEndpoints?: string[] | undefined, dnsTimeout?: number | undefined, dnsRetries?: number | undefined);
private getDNSCacheKey;
resolveDNS(service: string): Promise<SrvRecord[]>;
sortByPriority(records: SrvRecord[]): SrvRecord[];
selectFromSrvRecords(records: SrvRecord[], algorithm: SelectionAlgorithm, currentIndex: number): {
selected: SrvRecord | null;
nextIndex: number;
};
}