Skip to main content

ConnectionPool

Struct ConnectionPool 

Source
pub struct ConnectionPool { /* private fields */ }
Expand description

A pool of connections to multiple Talos endpoints.

The pool maintains connections to multiple Talos nodes and routes requests to healthy endpoints based on the configured load balancing strategy.

Implementations§

Source§

impl ConnectionPool

Source

pub async fn new(config: ConnectionPoolConfig) -> Result<Self>

Create a new connection pool.

§Errors

Returns an error if no endpoints are provided or if initial connection fails.

Source

pub async fn get_client(&self) -> Result<TalosClient>

Get a healthy client using the configured load balancing strategy.

§Errors

Returns an error if no healthy endpoints are available.

Source

pub fn get_healthy_endpoints(&self) -> Vec<String>

Get a list of healthy endpoint URLs.

Source

pub fn get_endpoint_health( &self, endpoint: &str, ) -> Option<&Arc<EndpointHealth>>

Get health information for an endpoint.

Source

pub fn get_all_health(&self) -> &HashMap<String, Arc<EndpointHealth>>

Get health information for all endpoints.

Source

pub async fn health_check(&self, endpoint: &str) -> Result<bool>

Perform a health check on a specific endpoint.

§Errors

Returns an error if the health check fails.

Source

pub async fn health_check_all(&self)

Perform health checks on all endpoints.

Source

pub async fn record_success(&self, endpoint: &str)

Record a successful operation for an endpoint.

Source

pub async fn record_failure(&self, endpoint: &str)

Record a failed operation for an endpoint.

Source

pub fn shutdown(&self)

Shutdown the connection pool.

Source

pub fn is_shutdown(&self) -> bool

Check if the pool is shut down.

Source

pub async fn connected_count(&self) -> usize

Get the number of connected clients.

Source

pub fn endpoint_count(&self) -> usize

Get the total number of endpoints.

Trait Implementations§

Source§

impl Drop for ConnectionPool

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more