热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

KafkaTopic级别配置详解

本文详细介绍了如何在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性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • window下kafka的安装以及测试
    目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ... [详细]
  • Kafka Topic 数据管理与清理策略
    本文探讨了在生产环境中如何有效管理和定期清理Kafka Topic中的数据。介绍了基于时间、日志大小和日志起始偏移量三种清除方式,并重点讲解了基于时间的清除策略及其配置方法。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • andr ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
author-avatar
2335286cc
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有