在Ubuntu上配置Kafka时,有几个关键参数需要特别注意。以下是一些主要的配置参数及其说明:
Kafka Broker配置
- broker.id:每个Kafka broker的唯一标识符。
- listeners:监听的地址和端口,例如:
PLAINTEXT://10.153.204.28:9092
。
- num.network.threads:网络处理线程数。
- num.io.threads:I/O处理线程数。
- socket.send.buffer.bytes:发送缓冲区大小。
- socket.receive.buffer.bytes:接收缓冲区大小。
- socket.request.max.bytes:请求的最大字节数。
- log.dirs:日志目录的路径。
- num.partitions:当topic不存在时系统自动创建的分区数。
- default.replication.factor:默认的副本因子。
- offsets.topic.replication.factor:偏移量topic的副本因子。
- num.recovery.threads.per.data.dir:每个数据目录的恢复线程数。
- transaction.state.log.replication.factor:事务状态日志的副本因子。
- transaction.state.log.min.isr:事务状态日志的最小ISR(In-Sync Replicas)数。
- log.retention.hours:日志保留的时间(小时)。
- log.segment.bytes:日志段的大小。
- log.retention.check.interval.ms:日志保留检查的间隔时间(毫秒)。
- zookeeper.connect:Zookeeper连接字符串。
- zookeeper.connection.timeout.ms:Zookeeper连接超时时间(毫秒)。
- group.initial.rebalance.delay.ms:消费者组初始再平衡的延迟时间(毫秒)。
Kafka消费者配置
- bootstrap.servers:Kafka broker的地址列表,例如:
kafka1:9092,kafka2:9092
。
- group.id:消费者组的ID。
- fetch.min.bytes:每次拉取的最小数据量(例如:1MB)。
- fetch.max.wait.ms:拉取数据的最大等待时间(例如:500ms)。
- max.partition.fetch.bytes:从每个分区拉取的最大数据量(例如:5MB)。
- max.poll.records:每次poll调用返回的最大记录数(例如:10000条)。
- receive.buffer.bytes:网络接收缓冲区大小(例如:1MB)。
- send.buffer.bytes:网络发送缓冲区大小(例如:1MB)。
- session.timeout.ms:会话超时时间(例如:30000ms)。
- heartbeat.interval.ms:心跳间隔时间(例如:10000ms)。
- max.poll.interval.ms:两次poll调用的最大间隔时间(例如:300000ms)。
- request.timeout.ms:请求超时时间(例如:30000ms)。
- key.deserializer:键的反序列化器(例如:
org.apache.kafka.common.serialization.StringDeserializer
)。
- value.deserializer:值的反序列化器(例如:
org.apache.kafka.common.serialization.StringDeserializer
)。
- security.protocol:安全协议(例如:
SASL_PLAINTEXT
)。
- sasl.mechanism:SASL认证机制(例如:
PLAIN
)。
这些参数涵盖了Kafka的主要配置项,确保Kafka在Ubuntu上的稳定运行和高效性能。根据实际需求调整这些参数,可以有效提升Kafka的使用体验。