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`。|
推荐阅读
-
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
-
本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ...
[详细]
蜡笔小新 2024-12-27 17:31:41
-
-
目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ...
[详细]
蜡笔小新 2024-12-16 12:01:36
-
本文探讨了在生产环境中如何有效管理和定期清理Kafka Topic中的数据。介绍了基于时间、日志大小和日志起始偏移量三种清除方式,并重点讲解了基于时间的清除策略及其配置方法。 ...
[详细]
蜡笔小新 2024-12-15 13:50:22
-
本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ...
[详细]
蜡笔小新 2024-12-27 16:33:32
-
本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ...
[详细]
蜡笔小新 2024-12-27 16:01:25
-
本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ...
[详细]
蜡笔小新 2024-12-27 10:18:13
-
本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ...
[详细]
蜡笔小新 2024-12-26 17:37:25
-
蜡笔小新 2024-12-26 13:29:32
-
本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ...
[详细]
蜡笔小新 2024-12-26 13:21:38
-
2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ...
[详细]
蜡笔小新 2024-12-26 12:56:20
-
本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ...
[详细]
蜡笔小新 2024-12-25 04:11:22
-
本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ...
[详细]
蜡笔小新 2024-12-20 18:58:01
-
本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ...
[详细]
蜡笔小新 2024-12-19 21:07:12
-
本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ...
[详细]
蜡笔小新 2024-12-18 13:03:19
-