import { AIProviderConfig, TranslationRequest, TranslationResult, AIProvider } from './types'; import { EnhancedAITranslator } from './enhanced-ai-translator'; /** * 负载均衡策略 */ export declare enum LoadBalanceStrategy { ROUND_ROBIN = "round_robin", WEIGHTED = "weighted", LEAST_CONNECTIONS = "least_connections", RESPONSE_TIME = "response_time", ERROR_RATE = "error_rate", ADAPTIVE = "adaptive" } /** * 故障转移策略 */ export declare enum FailoverStrategy { IMMEDIATE = "immediate", RETRY_THEN_FAILOVER = "retry_then_failover", CIRCUIT_BREAKER = "circuit_breaker" } /** * 服务提供商配置 */ export interface ProviderNode { id: string; translator: EnhancedAITranslator; config: AIProviderConfig; weight: number; priority: number; isHealthy: boolean; lastHealthCheck: Date; stats: { totalRequests: number; successfulRequests: number; failedRequests: number; currentConnections: number; averageResponseTime: number; errorRate: number; healthScore: number; }; circuitBreaker: { state: 'CLOSED' | 'OPEN' | 'HALF_OPEN'; failureCount: number; lastFailureTime: Date | null; nextRetryTime: Date | null; }; } /** * 负载均衡配置 */ export interface LoadBalancerConfig { strategy: LoadBalanceStrategy; healthCheckInterval: number; healthCheckTimeout: number; failoverStrategy: FailoverStrategy; maxRetries: number; retryDelay: number; circuitBreakerThreshold: number; circuitBreakerTimeout: number; enableHealthCheck: boolean; enableMetrics: boolean; } /** * 多服务商负载均衡器和故障转移管理器 */ export declare class TranslationLoadBalancer { private providers; private config; private currentIndex; private healthCheckTimer?; private metricsTimer?; constructor(config?: Partial); /** * 添加翻译服务提供商 */ addProvider(id: string, config: AIProviderConfig, weight?: number, priority?: number): void; /** * 移除翻译服务提供商 */ removeProvider(id: string): boolean; /** * 执行负载均衡的翻译请求 */ translate(request: TranslationRequest): Promise; /** * 选择最佳的服务提供商 */ private selectProvider; /** * 轮询选择 */ private selectRoundRobin; /** * 加权选择 */ private selectWeighted; /** * 最少连接数选择 */ private selectLeastConnections; /** * 响应时间选择 */ private selectByResponseTime; /** * 错误率选择 */ private selectByErrorRate; /** * 自适应选择(综合多个因素) */ private selectAdaptive; /** * 计算提供商综合评分 */ private calculateProviderScore; /** * 执行翻译请求 */ private executeTranslation; /** * 记录成功请求 */ private recordSuccess; /** * 记录失败请求 */ private recordFailure; /** * 更新响应时间 */ private updateResponseTime; /** * 更新健康评分 */ private updateHealthScore; /** * 获取可用的服务提供商 */ private getAvailableProviders; /** * 启动健康检查 */ private startHealthChecking; /** * 执行健康检查 */ private performHealthChecks; /** * 检查单个服务提供商的健康状态 */ private checkProviderHealth; /** * 启动指标收集 */ private startMetricsCollection; /** * 收集指标 */ private collectMetrics; /** * 获取负载均衡统计信息 */ getStats(): { totalProviders: number; healthyProviders: number; strategy: LoadBalanceStrategy; failoverStrategy: FailoverStrategy; providers: { id: string; type: AIProvider; isHealthy: boolean; weight: number; priority: number; stats: { totalRequests: number; successfulRequests: number; failedRequests: number; currentConnections: number; averageResponseTime: number; errorRate: number; healthScore: number; }; circuitBreaker: { state: "CLOSED" | "OPEN" | "HALF_OPEN"; failureCount: number; lastFailureTime: Date | null; nextRetryTime: Date | null; }; }[]; }; /** * 延迟函数 */ private delay; /** * 销毁负载均衡器 */ destroy(): void; } //# sourceMappingURL=translation-load-balancer.d.ts.map