Expand description
Backend server selection and load balancing
This module handles selecting backend servers using round-robin with simple load tracking for monitoring.
§Overview
The BackendSelector provides thread-safe backend selection for routing
NNTP commands across multiple backend servers. It uses a lock-free
round-robin algorithm with atomic operations for concurrent access.
§Usage
use nntp_proxy::router::BackendSelector;
use nntp_proxy::types::{BackendId, ClientId};
let mut selector = BackendSelector::new();
selector.add_backend(BackendId::from_index(0), "server1".to_string(), provider);
// Route a command
let client_id = ClientId::new();
let backend_id = selector.route_command_sync(client_id, "LIST").unwrap();
// After command completes
selector.complete_command_sync(backend_id);Structs§
- Backend
Selector - Selects backend servers using round-robin with load tracking