pub struct GossipMembership { /* private fields */ }Expand description
Gossip-based membership protocol
Implementations§
Source§impl GossipMembership
impl GossipMembership
Sourcepub fn new(node_id: NodeId, address: SocketAddr, config: GossipConfig) -> Self
pub fn new(node_id: NodeId, address: SocketAddr, config: GossipConfig) -> Self
Create a new gossip membership
Sourcepub async fn join(&self, seed_address: SocketAddr) -> Result<()>
pub async fn join(&self, seed_address: SocketAddr) -> Result<()>
Add a seed node to join cluster
Sourcepub fn get_members(&self) -> Vec<Member>
pub fn get_members(&self) -> Vec<Member>
Get all cluster members
Sourcepub fn get_healthy_members(&self) -> Vec<Member>
pub fn get_healthy_members(&self) -> Vec<Member>
Get healthy members only
Sourcepub fn get_member(&self, node_id: &NodeId) -> Option<Member>
pub fn get_member(&self, node_id: &NodeId) -> Option<Member>
Get a specific member
Sourcepub async fn handle_message(&self, message: GossipMessage) -> Result<()>
pub async fn handle_message(&self, message: GossipMessage) -> Result<()>
Handle incoming gossip message
Sourcepub async fn add_listener<F>(&self, listener: F)
pub async fn add_listener<F>(&self, listener: F)
Add event listener
Sourcepub async fn get_version(&self) -> u64
pub async fn get_version(&self) -> u64
Get membership version
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GossipMembership
impl !RefUnwindSafe for GossipMembership
impl Send for GossipMembership
impl Sync for GossipMembership
impl Unpin for GossipMembership
impl !UnwindSafe for GossipMembership
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request