feat(cluster): implement distributed clustering with etcd coordination
- Integrate etcd-client for distributed coordination and leader election - Add remote client macros with proper formatting for all services - Implement RequestMetrics for tracking RPC performance and errors - Add rate limiting mechanism across all service endpoints - Create ElectionRequest and ElectionResult message types for leader election - Add role management with primary/replica switching capabilities - Implement health checker with automatic failover detection - Add repository count metrics for cluster monitoring - Update Cargo.toml with etcd-client and dashmap dependencies - Modify RepoEntry to include read_only flag for replica handling - Implement should_accept_election logic to prevent duplicate elections - Add RoleChangedEvent handling for cluster role updates
This commit is contained in:
+4
-4
@@ -4,11 +4,11 @@ pub mod server;
|
||||
pub mod sync;
|
||||
|
||||
pub use handler::{
|
||||
GitNodeActor, GitNodeArgs, RepoEntry, broadcast_ref_update, get_category_members,
|
||||
get_cluster_nodes, list_all_groups, route_group_for, start_node_actor,
|
||||
GitNodeActor, GitNodeArgs, RepoEntry, broadcast_ref_update, broadcast_role_changed,
|
||||
get_category_members, get_cluster_nodes, list_all_groups, route_group_for, start_node_actor,
|
||||
};
|
||||
pub use message::{
|
||||
GitNodeMessage, NodeHealth, ROLE_PRIMARY, ROLE_REPLICA, RefUpdateEvent, RepoActorMessage,
|
||||
RouteDecision,
|
||||
ElectionRequest, ElectionResult, GitNodeMessage, NodeHealth, ROLE_PRIMARY, ROLE_REPLICA,
|
||||
RefUpdateEvent, RepoActorMessage, RoleChangedEvent, RouteDecision,
|
||||
};
|
||||
pub use server::init_actor_cluster;
|
||||
|
||||
Reference in New Issue
Block a user