consul-resolver
Version:
A load balancer for Consul services with Redis-based metrics
26 lines (25 loc) • 915 B
TypeScript
import { ConsulResolverConfig, OptimalServiceResult, SelectionAlgorithm, ServiceMetrics } from "./types";
declare class ConsulResolver {
private currentIndex;
private consul;
private redis;
private cachePrefix;
private weights;
private metrics;
private cacheTTL;
private cacheEnabled;
private debug;
private metricsManager;
private dnsManager;
private healthCheckManager;
constructor(config: ConsulResolverConfig);
/**
* Select the optimal service based on the specified algorithm
*/
selectOptimalService(service: string, algorithm?: SelectionAlgorithm): Promise<OptimalServiceResult>;
incrementConnections(serviceId: string): Promise<void>;
decrementConnections(serviceId: string): Promise<void>;
getSelectionMetrics(serviceId: string): Promise<ServiceMetrics | null>;
refresh(): Promise<void>;
}
export default ConsulResolver;