pub struct BrokerRewritingClientContext<C> {
inner: C,
overrides: HashMap<BrokerAddr, BrokerAddr>,
drop_tokens: Vec<Box<dyn Any + Send + Sync>>,
}
Expand description
A client context that supports rewriting broker addresses.
Fields§
§inner: C
§overrides: HashMap<BrokerAddr, BrokerAddr>
§drop_tokens: Vec<Box<dyn Any + Send + Sync>>
Opaque tokens to cleanup resources associated with overrides.
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(
&mut self,
broker: &str,
rewrite_host: &str,
rewrite_port: Option<u16>
)
pub fn add_broker_rewrite(
&mut self,
broker: &str,
rewrite_host: &str,
rewrite_port: Option<u16>
)
Adds a broker rewrite rule.
Connections to the specified broker
will be rewritten to connect to
rewrite_host
and rewrite_port
instead. If rewrite_port
is omitted,
only the host is rewritten.
sourcepub fn add_broker_rewrite_with_token<T: Any + Send + Sync>(
&mut self,
broker: &str,
rewrite_host: &str,
rewrite_port: Option<u16>,
token: T
)
pub fn add_broker_rewrite_with_token<T: Any + Send + Sync>(
&mut self,
broker: &str,
rewrite_host: &str,
rewrite_port: Option<u16>,
token: T
)
The same as add_broker_rewrite
, but holds onto a token that may perform
some shutdown on drop.
fn add_broker_rewrite_inner(
&mut self,
broker: &str,
rewrite_host: &str,
rewrite_port: Option<u16>,
token: Option<Box<dyn Any + Send + Sync>>
)
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> 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> 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