common_wal/config/kafka/
datanode.rs1use std::time::Duration;
16
17use common_base::readable_size::ReadableSize;
18use serde::{Deserialize, Serialize};
19
20use crate::config::kafka::common::{
21 DEFAULT_TOPIC_LATEST_OFFSET_FETCH_INTERVAL, KafkaConnectionConfig, KafkaTopicConfig,
22};
23
24#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
26#[serde(default)]
27pub struct DatanodeKafkaConfig {
28 #[serde(flatten)]
30 pub connection: KafkaConnectionConfig,
31 #[serde(alias = "max_batch_size")]
34 pub max_batch_bytes: ReadableSize,
35 #[serde(with = "humantime_serde")]
37 pub consumer_wait_timeout: Duration,
38 #[serde(flatten)]
40 pub kafka_topic: KafkaTopicConfig,
41 pub auto_create_topics: bool,
43 pub create_index: bool,
45 #[serde(with = "humantime_serde")]
46 pub dump_index_interval: Duration,
47 #[serde(with = "humantime_serde")]
49 pub topic_latest_offset_fetch_interval: Duration,
50 pub overwrite_entry_start_id: bool,
52}
53
54impl Default for DatanodeKafkaConfig {
55 fn default() -> Self {
56 Self {
57 connection: KafkaConnectionConfig::default(),
58 max_batch_bytes: ReadableSize::mb(1),
60 consumer_wait_timeout: Duration::from_millis(100),
61 kafka_topic: KafkaTopicConfig::default(),
62 auto_create_topics: true,
63 create_index: false,
64 dump_index_interval: Duration::from_secs(60),
65 topic_latest_offset_fetch_interval: DEFAULT_TOPIC_LATEST_OFFSET_FETCH_INTERVAL,
66 overwrite_entry_start_id: false,
67 }
68 }
69}