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