KafkaTopic级别配置详解
作者:2335286cc | 来源:互联网 | 2024-11-20 09:37
本文详细介绍了如何在ApacheKafka中进行Topic级别的配置,包括创建、修改和删除配置参数的具体步骤,并提供了详细的配置属性表。
### 一、Kafka 中 Topic 级别配置
#### 1. Topic 级别配置概述
在 Apache Kafka 中,Topic 级别的配置允许用户对特定的 Topic 进行个性化的设置。这些配置可以覆盖全局配置,提供更灵活的数据管理和性能优化。
- **配置优先级**:当 Topic 级别的配置与全局配置存在冲突时,Topic 级别的配置将优先生效。
- **默认值**:如果没有设置 Topic 级别的配置,系统将使用全局配置中的默认值。
#### 2. 创建 Topic 时配置参数
在创建 Topic 时,可以通过 `--config` 参数设置一个或多个配置项。例如,创建一个名为 `my-topic` 的 Topic,并设置最大消息大小和刷新频率:
```sh
bin/kafka-topics.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka02 --create --topic my-topic --partitions 1 --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1
```
#### 3. 修改 Topic 时配置参数
已经存在的 Topic 可以通过 `--alter` 参数修改其配置。例如,修改 `my-topic` 的最大消息大小:
```sh
bin/kafka-topics.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka02 --alter --topic my-topic --config max.message.bytes=128000
```
#### 4. 删除 Topic 级别配置参数
如果需要删除某个 Topic 的配置参数,可以使用 `--delete-config` 参数。例如,删除 `my-topic` 的最大消息大小配置:
```sh
bin/kafka-topics.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka02 --alter --topic my-topic --delete-config max.message.bytes
```
**注意**:Kafka 集群的根目录为 `/config/mobile/mq/mafka02`,所有节点信息均在此目录下。
### 二、Topic 级别配置属性表
| 属性 | 默认值 | 全局配置属性 | 说明 |
|------|--------|--------------|------|
| `cleanup.policy` | `delete` | `log.cleanup.policy` | 日志清理策略,可选值为 `delete` 和 `compact`,分别用于处理过期数据和日志文件达到限制的情况。|
| `delete.retention.ms` | `86400000 (24 hours)` | `log.cleaner.delete.retention.ms` | 压缩日志保留的最长时间,也是客户端消费消息的最长时间。|
| `flush.messages` | `None` | `log.flush.interval.messages` | 在将日志文件同步到磁盘之前累积的消息条数,用于平衡数据可靠性和性能。|
| `flush.ms` | `None` | `log.flush.interval.ms` | 控制 `fsync` 的时间间隔,确保即使消息量未达到阈值,也能按时同步到磁盘。|
| `index.interval.bytes` | `4096` | `log.index.interval.bytes` | 执行 `fetch` 操作后扫描最近的 `offset` 大小,设置越大扫描速度越快,但占用更多内存。|
| `message.max.bytes` | `1,000,000` | `message.max.bytes` | 消息的最大大小,单位为字节。|
| `min.cleanable.dirty.ratio` | `0.5` | `log.cleaner.min.cleanable.ratio` | 日志清理的频率控制,值越大清理效率越高,但也可能造成空间浪费。|
| `retention.bytes` | `None` | `log.retention.bytes` | 每个分区的最大文件大小,`-1` 表示无大小限制。|
| `retention.ms` | `None` | `log.retention.minutes` | 数据存储的最大时间,超过该时间将根据 `log.cleanup.policy` 设置的策略处理数据。|
| `segment.bytes` | `1 GB` | `log.segment.bytes` | 控制每个 `segment` 文件的大小。|
| `segment.index.bytes` | `10 MB` | `log.index.size.max.bytes` | `segment` 日志的索引文件大小限制。|
| `log.roll.hours` | `7 days` | `log.roll.hours` | 当日志 `segment` 未达到 `log.segment.bytes` 设置的大小时,强制新建一个 `segment`。|
推荐阅读
-
本文档介绍了如何使用ESP32开发板在STA模式下实现与TCP服务器的通信,包括环境搭建、代码解析及实验步骤。 ...
[详细]
蜡笔小新 2024-11-20 01:20:18
-
本文将详细介绍如何在CentOS 7上安装和配置Kafka,包括必要的环境准备、JDK和Zookeeper的配置步骤。 ...
[详细]
蜡笔小新 2024-11-18 17:41:13
-
-
本文详细介绍了Dubbo的使用方法和源码分析,涵盖其架构设计、核心特性和调用流程。 ...
[详细]
蜡笔小新 2024-11-18 03:51:49
-
本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ...
[详细]
蜡笔小新 2024-11-20 11:31:55
-
本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ...
[详细]
蜡笔小新 2024-11-20 09:46:39
-
本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ...
[详细]
蜡笔小新 2024-11-19 19:18:07
-
蜡笔小新 2024-11-19 18:34:08
-
本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ...
[详细]
蜡笔小新 2024-11-19 09:19:01
-
在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ...
[详细]
蜡笔小新 2024-11-18 16:46:17
-
本实验旨在对比Telnet和SSH两种安全通信协议的服务差异,并通过搭建服务器和使用Wireshark抓包工具进行详细分析。 ...
[详细]
蜡笔小新 2024-11-18 14:10:59
-
背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程 ...
[详细]
蜡笔小新 2024-11-18 09:22:21
-
在Java开发中,如何利用ProcessBuilder类调用外部程序是一个常见的需求。本文将详细介绍ProcessBuilder类的使用方法,并提供示例代码帮助你更好地理解和应用。 ...
[详细]
蜡笔小新 2024-11-17 23:40:41
-
本文详细探讨了链接脚本和可执行文件的基本概念及其在嵌入式系统中的应用,特别是S32K144芯片的具体实现。 ...
[详细]
蜡笔小新 2024-11-17 21:24:52
-
本文介绍了多个提升 IntelliJ IDEA 使用体验的插件以及十个高效的快捷键,旨在帮助开发者提高编码效率。 ...
[详细]
蜡笔小新 2024-11-20 00:44:58
-
日志记录机制是软件开发中不可或缺的一部分,它帮助开发者追踪和调试程序运行时的各种异常。Python 提供了内置的 logging 模块,使我们在代码中记录和管理日志信息变得更加方便。本文将详细介绍如何使用 Python 的 logging 模块。 ...
[详细]
蜡笔小新 2024-11-18 16:23:46
-