pub struct BrokerRewritingClientContext<C> {
inner: C,
rewrites: BTreeMap<BrokerAddr, Arc<dyn Fn() -> BrokerRewrite + Send + Sync>>,
}Expand description
A client context that supports rewriting broker addresses.
Fields§
§inner: C§rewrites: BTreeMap<BrokerAddr, Arc<dyn Fn() -> BrokerRewrite + Send + Sync>>Implementations§
source§impl<C> BrokerRewritingClientContext<C>
impl<C> BrokerRewritingClientContext<C>
sourcepub fn new(inner: C) -> BrokerRewritingClientContext<C>
pub fn new(inner: C) -> BrokerRewritingClientContext<C>
Constructs a new context that wraps inner.
sourcepub fn add_broker_rewrite<F>(&mut self, broker: BrokerAddr, rewrite: F)where
F: Fn() -> BrokerRewrite + Send + Sync + 'static,
pub fn add_broker_rewrite<F>(&mut self, broker: BrokerAddr, rewrite: F)where F: Fn() -> BrokerRewrite + Send + Sync + 'static,
Adds a broker rewrite rule.
rewrite is a function that returns a BrokerRewrite that specifies
how to rewrite the address for broker.
The function is invoked by librdkafka on every connection attempt to the broker. This permits the rewrite to evolve over time, for example, if the rewrite is for a tunnel whose address changes if the tunnel fails and restarts.
Trait Implementations§
source§impl<C> ClientContext for BrokerRewritingClientContext<C>where
C: ClientContext,
impl<C> ClientContext for BrokerRewritingClientContext<C>where C: ClientContext,
source§const ENABLE_REFRESH_OAUTH_TOKEN: bool = C::ENABLE_REFRESH_OAUTH_TOKEN
const ENABLE_REFRESH_OAUTH_TOKEN: bool = C::ENABLE_REFRESH_OAUTH_TOKEN
Whether to periodically refresh the SASL
OAUTHBEARER token
by calling ClientContext::generate_oauth_token. Read moresource§fn rewrite_broker_addr(&self, addr: BrokerAddr) -> BrokerAddr
fn rewrite_broker_addr(&self, addr: BrokerAddr) -> BrokerAddr
Rewrites a broker address for DNS resolution. Read more
source§fn log(&self, level: RDKafkaLogLevel, fac: &str, log_message: &str)
fn log(&self, level: RDKafkaLogLevel, fac: &str, log_message: &str)
Receives log lines from librdkafka. Read more
source§fn error(&self, error: KafkaError, reason: &str)
fn error(&self, error: KafkaError, reason: &str)
Receives global errors from the librdkafka client. Read more
source§fn stats(&self, statistics: Statistics)
fn stats(&self, statistics: Statistics)
Receives the decoded statistics of the librdkafka client. To enable, the
statistics.interval.ms configuration parameter must be specified. Read moresource§fn stats_raw(&self, statistics: &[u8])
fn stats_raw(&self, statistics: &[u8])
Receives the JSON-encoded statistics of the librdkafka client. To
enable, the
statistics.interval.ms configuration parameter must be
specified. Read moresource§fn generate_oauth_token(
&self,
oauthbearer_config: Option<&str>
) -> Result<OAuthToken, Box<dyn Error>>
fn generate_oauth_token( &self, oauthbearer_config: Option<&str> ) -> Result<OAuthToken, Box<dyn Error>>
Generates an OAuth token from the provided configuration. Read more
source§impl<C: Clone> Clone for BrokerRewritingClientContext<C>
impl<C: Clone> Clone for BrokerRewritingClientContext<C>
source§fn clone(&self) -> BrokerRewritingClientContext<C>
fn clone(&self) -> BrokerRewritingClientContext<C>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<C> ConsumerContext for BrokerRewritingClientContext<C>where
C: ConsumerContext,
impl<C> ConsumerContext for BrokerRewritingClientContext<C>where C: ConsumerContext,
source§fn rebalance(
&self,
native_client: &NativeClient,
err: RDKafkaRespErr,
tpl: &mut TopicPartitionList
)
fn rebalance( &self, native_client: &NativeClient, err: RDKafkaRespErr, tpl: &mut TopicPartitionList )
Implements the default rebalancing strategy and calls the
pre_rebalance and
post_rebalance methods. If this
method is overridden, it will be responsibility of the user to call them
if needed.source§fn pre_rebalance<'a>(&self, rebalance: &Rebalance<'a>)
fn pre_rebalance<'a>(&self, rebalance: &Rebalance<'a>)
Pre-rebalance callback. This method will run before the rebalance and
should terminate its execution quickly.
source§fn post_rebalance<'a>(&self, rebalance: &Rebalance<'a>)
fn post_rebalance<'a>(&self, rebalance: &Rebalance<'a>)
Post-rebalance callback. This method will run after the rebalance and
should terminate its execution quickly.
source§fn commit_callback(&self, result: KafkaResult<()>, offsets: &TopicPartitionList)
fn commit_callback(&self, result: KafkaResult<()>, offsets: &TopicPartitionList)
Post commit callback. This method will run after a group of offsets was
committed to the offset store.
source§fn main_queue_min_poll_interval(&self) -> Timeout
fn main_queue_min_poll_interval(&self) -> Timeout
Returns the minimum interval at which to poll the main queue, which
services the logging, stats, and error callbacks. Read more
source§impl<C> ProducerContext for BrokerRewritingClientContext<C>where
C: ProducerContext,
impl<C> ProducerContext for BrokerRewritingClientContext<C>where C: ProducerContext,
§type DeliveryOpaque = <C as ProducerContext>::DeliveryOpaque
type DeliveryOpaque = <C as ProducerContext>::DeliveryOpaque
A
DeliveryOpaque is a user-defined structure that will be passed to
the producer when producing a message, and returned to the delivery
method once the message has been delivered, or failed to.source§fn delivery(
&self,
delivery_result: &DeliveryResult<'_>,
delivery_opaque: Self::DeliveryOpaque
)
fn delivery( &self, delivery_result: &DeliveryResult<'_>, delivery_opaque: Self::DeliveryOpaque )
This method will be called once the message has been delivered (or
failed to). The
DeliveryOpaque will be the one provided by the user
when calling send.Auto Trait Implementations§
impl<C> !RefUnwindSafe for BrokerRewritingClientContext<C>
impl<C> Send for BrokerRewritingClientContext<C>where C: Send,
impl<C> Sync for BrokerRewritingClientContext<C>where C: Sync,
impl<C> Unpin for BrokerRewritingClientContext<C>where C: Unpin,
impl<C> !UnwindSafe for BrokerRewritingClientContext<C>
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> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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>
Wrap the input message
T in a tonic::Request