diff --git a/crates/aingle_cortex/src/cluster_init.rs b/crates/aingle_cortex/src/cluster_init.rs index cd65201..2486d01 100644 --- a/crates/aingle_cortex/src/cluster_init.rs +++ b/crates/aingle_cortex/src/cluster_init.rs @@ -518,21 +518,10 @@ pub async fn init_cluster( std::sync::Arc::new(sm) }; - let resolver = std::sync::Arc::new(aingle_raft::network::NodeResolver::new()); let node_id = config.node_id; - resolver - .register( - node_id, - aingle_raft::CortexNode { - rest_addr: bind_addr.to_string(), - p2p_addr: p2p_addr.to_string(), - }, - ) - .await; - let rpc_sender = std::sync::Arc::new(HttpRaftRpcSender::new(config.secret.clone(), config.tls)); - let network = aingle_raft::network::CortexNetworkFactory::new(resolver, rpc_sender); + let network = aingle_raft::network::CortexNetworkFactory::new(rpc_sender); let raft_config = openraft::Config { heartbeat_interval: 500, diff --git a/crates/aingle_raft/src/network.rs b/crates/aingle_raft/src/network.rs index 2ad84f8..0cce196 100644 --- a/crates/aingle_raft/src/network.rs +++ b/crates/aingle_raft/src/network.rs @@ -145,18 +145,18 @@ pub trait RaftRpcSender: Send + Sync + 'static { // ============================================================================ /// Factory that creates per-target network connections for Raft RPC. +/// +/// The factory needs no [`NodeResolver`]: openraft hands [`Self::new_client`] the +/// target's [`CortexNode`] (with its address) directly from cluster membership, so +/// there is no separate address lookup to perform here. pub struct CortexNetworkFactory { - resolver: Arc, rpc_sender: Arc, } impl CortexNetworkFactory { /// Create a new network factory. - pub fn new(resolver: Arc, rpc_sender: Arc) -> Self { - Self { - resolver, - rpc_sender, - } + pub fn new(rpc_sender: Arc) -> Self { + Self { rpc_sender } } }