quantrs2_device/cloud/orchestration/load_balancing/
strategies.rs

1//! Load balancing strategies and health check configurations
2
3use serde::{Deserialize, Serialize};
4use std::time::Duration;
5
6/// Load balancing strategies
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub enum LoadBalancingStrategy {
9    RoundRobin,
10    WeightedRoundRobin,
11    LeastConnections,
12    LeastResponseTime,
13    IPHash,
14    GeographicProximity,
15    Custom(String),
16}
17
18/// Health check configuration
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct HealthCheckConfig {
21    /// Check interval
22    pub interval: Duration,
23    /// Timeout
24    pub timeout: Duration,
25    /// Unhealthy threshold
26    pub unhealthy_threshold: usize,
27    /// Healthy threshold
28    pub healthy_threshold: usize,
29    /// Check types
30    pub check_types: Vec<HealthCheckType>,
31}
32
33/// Health check types
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35pub enum HealthCheckType {
36    HTTP,
37    HTTPS,
38    TCP,
39    UDP,
40    Custom(String),
41}