Struct groupcache::GroupcacheBuilder
source · pub struct GroupcacheBuilder<Value: ValueBounds> { /* private fields */ }
Expand description
Allows to build groupcache instance with customized caches, timeouts etc
Implementations§
source§impl<Value: ValueBounds> GroupcacheBuilder<Value>
impl<Value: ValueBounds> GroupcacheBuilder<Value>
sourcepub fn main_cache(self, main_cache: Cache<String, Value>) -> Self
pub fn main_cache(self, main_cache: Cache<String, Value>) -> Self
Sets main_cache for groupcache.
main_cache is the cache for items that this peer is the owner of. There is one owner of a given key in a set of peers forming hash ring and this peer stores values in main_cache.
By default,
moka
cache is used and this setter allows to customize this cache (eviction policy, size etc.)
sourcepub fn hot_cache(self, hot_cache: Cache<String, Value>) -> Self
pub fn hot_cache(self, hot_cache: Cache<String, Value>) -> Self
Sets hot_cache for groupcache.
The hot_cache is the cache for items that seem popular
enough to replicate to this node, even though it’s not the owner.
This however may lead to inconsistencies when expiring values (see Groupcache::remove
).
By default, hot_cache stores up to 10k items and expires after 30s. Depending on use_case you may either disable hot_cache or tweak time_to_live.
sourcepub fn https(self) -> Self
pub fn https(self) -> Self
When connecting to peers, use https instead of http.
Note that this requires you to configure server running Groupcache::grpc_service
to handle TLS.
Look into tonic/axum documentation how to do so.
By default, http is used.
sourcepub fn grpc_endpoint_builder(
self,
builder: impl Fn(Endpoint) -> Endpoint + Send + Sync + 'static
) -> Self
pub fn grpc_endpoint_builder( self, builder: impl Fn(Endpoint) -> Endpoint + Send + Sync + 'static ) -> Self
Allows to customize HTTP/2 channels for peer-to-peer connections.
By default, request timeout is set to 10 seconds.
sourcepub fn service_discovery(
self,
service_discovery: impl ServiceDiscovery + 'static
) -> Self
pub fn service_discovery( self, service_discovery: impl ServiceDiscovery + 'static ) -> Self
Enable automatic pull-based service discovery via ServiceDiscovery
By default, automatic service is disabled, useful when: - deployed on kubernetes (see examples) - registered in consul etc
pub fn build(self) -> Groupcache<Value>
Auto Trait Implementations§
impl<Value> !RefUnwindSafe for GroupcacheBuilder<Value>
impl<Value> Send for GroupcacheBuilder<Value>
impl<Value> !Sync for GroupcacheBuilder<Value>
impl<Value> Unpin for GroupcacheBuilder<Value>where
Value: Unpin,
impl<Value> !UnwindSafe for GroupcacheBuilder<Value>
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
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request