Kafka Topic的增删改查操作
1.创建Topic
bin/kafka-topics.sh --create --topic bigdata --zookeeper hadoop:2181/kafka08 --partitions 5 --replication-factor 2
其中:
(1)--replication-factor:副本数目默认不超过3,太多影响网络磁盘io性能(副本数越多,数据越安全,但是不能大于broker的数目)
(2)--partitions:一般为broker服务数目的1--2倍
2.查看当前kafka集群中Topic的情况
(1)查看Topic列表
bin/kafka-topics.sh --list --zookeeper hadoop:2181/kafka08
(2)zk查看
打开zk客户端后
ls /kafka/config/topics
(3)topic数据存储
由server.properties中log.dirs配置决定
/opt/modules/kafka_2.11-0.10.2.1/data/0
3. 查看Topic的详细信息
bin/kafka-topics.sh --describe --zookeeper hadoop:2181/kafka08
结果:
Topic:beifeng PartitionCount:5 ReplicationFactor:2 Configs:
Topic: beifeng Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0
Topic: beifeng Partition: 1 Leader: 0 Replicas: 1,0 Isr: 0
Topic: beifeng Partition: 2 Leader: 0 Replicas: 0,1 Isr: 0
Topic: beifeng Partition: 3 Leader: 0 Replicas: 1,0 Isr: 0
Topic: beifeng Partition: 4 Leader: 0 Replicas: 0,1 Isr: 0
Topic:beifeng0 PartitionCount:1 ReplicationFactor:1 Configs:
Topic: beifeng0 Partition: 0 Leader: 0 Replicas: 0 Isr: 0
其中Isr:当broker的leader宕机后,有机会竞选的broker的id!
4. 修改Topic信息
bin/kafka-topics.sh --alter --topic bigdata --zookeeper hadoop:2181/kafka08 --partitions 6
注意:不能修改replication-factor,以及只能对partition个数进行增加,不能减少
5. 删除Topic(简单的删除,只是标记删除)
bin/kafka-topics.sh --delete --topic bigdata--zookeeper hadoop:2181/kafka08
默认情况下,删除是标记删除,没有实际删除这个Topic。
真实删除这个Topic的两种方式:
(1)通过delete命令删除后,手动将本地磁盘以及zk上的相关topic的信息删除即可
ls /kafka/brokers/topics
(2)配置server.properties文件,给定参数delete.topic.enable=true,表示允许进行Topic的删除
注意:一般来说,topic创建了之后就不要随意的删除和修改信息
6.topic分区partition意义
(1)一个分区只能让(一个消费者组中)一条线程消费。(同一个分区中的数据,是不可能让两条线程同时消费的)
(2)如果,一个topic有3个分区,但是消费者只有一个线程,则这个消费者消费这3个分区的数据。
(3)分区数和消费者线程数相等的情况下,消费的速度和性能是最好的。(如果,分区数大于线程数,则有的线程消费多个分区的数据;如果线程大于分区,部分线程占据资源不处理数据,浪费资源)
原文地址:https://www.cnblogs.com/jjiaper/p/15079410.html
- 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]
- 关于Expression Tree和IL Emit的所谓的"性能差别"
- 采用一个自创的"验证框架"实现对数据实体的验证[扩展篇]
- 采用一个自创的"验证框架"实现对数据实体的验证[改进篇]
- Flash XSS检测脚本的简单实现
- 采用一个自创的"验证框架"实现对数据实体的验证[设计篇]
- 采用一个自创的"验证框架"实现对数据实体的验证[编程篇]
- 谈谈你最熟悉的System.DateTime[上篇]
- 12步轻松搞定Python装饰器
- 实用小工具,教你轻松转化Python通用数据格式
- 数据工程师常用的几个小工具(附python源代码)
- R语言的三种聚类方法
- 技能 | R语言的igraph画社交关系图示例
- 魔兽世界中招:一条命令行就能劫持你的游戏!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Kubernetes】自定义资源CRDs不支持fieldselector
- Cypress系列(48)- and() 命令详解
- Java源码系列2——HashMap
- 快速学习-Saturn Console部署
- MySQL的各种日志
- 本地机器如何访问服务器上的docker容器内的tensorboard?
- MySQL是如何实现可重复读的?
- Java源码系列4——HashMap扩容时究竟对链表和红黑树做了什么?
- 如何理解被 protected 修饰的成员变量?
- 重学数据结构(五、串)
- python boto和boto3操作bucket
- 对比 Redis 中 RDB 和 AOF 持久化
- Nginx负载均衡健康检查功能
- 深入浅出hiredis -- C++操作redis
- redis学习(十五)