当前位置: 首页 > article >正文

Kafka文档阅读笔记之基本操作

官方资料

  • 官方首页
  • 官方文档
  • 基本操作
  • topic的配置参数

topic的部分操作

创建新的topic
命令样例,如下:

bin/kafka-topics.sh \
  --bootstrap-server localhost:9092 \
  --create \
  --topic my_topic_name \
  --partitions 20 \
  --replication-factor 3 \
  --config x=y

在上述样例中

  • 选项replication-factor用于指定副本的数量,即保存数据的节点的数量。当指定为3副本时,假如其中2个副本丢失,或者说2个节点丢失、不可用,仍然有1个节点可以提供数据的读操作。
  • 选项partitions用于指定shard或者分片的数量。评估shard的数量时,需要保证一个partition可以由一个节点完整承载。如样例中指定20个partition,在不考虑副本的数量的情况下,表示至多由20个节点来存储数据,提供读、写操作。partition的数量影响topic的读操作的并发度,即topic的partition之间,读操作是并发的,而在partition内部,读操作是串行的。

Kafka使用硬盘来保存数据,保存topic的数据时,目录名样例为${KAFKA_HOME}/log/${TOPIC_NAME}-{00000},即目录名由topic的名称和partition的编号来组成。
通常情况下,Linux操作系统的环境下,目录名一般由255个字节的字符组成,另外partition的数量,期望不超出100000个,因此从实现角度,限定了topic的名称的长度,即topic的名称由249个字节组成。

修改已有的topic,增加partition的数量
命令样例,如下:

bin/kafka-topics.sh \
  --bootstrap-server localhost:9092 \
  --alter \
  --topic my_topic_name \
  --partitions 40

增加partition的数量时,需要关注对数据分区的方法,避免增加partition之后,触发数据的重新分布的操作。
注意partition的数量只能增加,不能减小,目前kafka没有提供减少partition的数量的方法。

修改已有的topic,增加配置参数
命令样例,如下:

bin/kafka-configs.sh \
  --bootstrap-server localhost:9092 \
  --entity-type topics \
  --entity-name my_topic_name \
  --alter \
  --add-config x=y

修改已有的topic,删除配置参数
命令样例,如下:

bin/kafka-configs.sh \
  --bootstrap-server localhost:9092 \
  --entity-type topics \
  --entity-name my_topic_name \
  --alter \
  --delete-config x

删除一个topic
命令样例,如下:

bin/kafka-topics.sh \
  --bootstrap-server localhost:9092 \
  --delete \
  --topic my_topic_name

优雅退出

kafka集群会自动监控、检测集群中节点的状态,当有节点出现失效比如kafka进程退出、kafka进程所在服务器重启等现象时,kafka集群自动将故障节点上的partition的主副本迁移至健康节点上,即从partition的已有副本中选择新的主副本,用于承接读、写操作。

当启用kafka优雅退出时,

  • kafka进程将数据从内存刷新至硬盘上,这样当kafka进程重新启动时,将不需要做日志的恢复操作,比如通过计算数据的校验和来检查数据的完整性,这样有助于缩短启动时间。
  • kafka进程将主副本在本节点的partition,通知其它节点上的副本来竞选主副本,这有助于缩短这部分partition不可用的时间。

kafka的启动流程,和退出流程,涉及哪些操作,相应的耗时。

通过配置参数controlled.shutdown.enable来控制优雅退出的行为。

  • 取值为true时,启用优雅退出。
  • 取值为false时,禁用优雅退出。

使用优雅退出时,要求各个partition至少要有2个副本。


http://www.kler.cn/news/367960.html

相关文章:

  • Pandabuy事件警示:反向海淘品牌如何规避风险
  • 二、Spring的执行流程
  • ELK日志收集
  • Spring中导致事务传播失效的情况(自调用、方法访问权限、异常处理不当、传播类型选择错误等。在实际开发中,务必确保事务方法正确配置)
  • git命令笔记(速查速查)
  • 8 个用于创建电商组件的 CSS 和 JS 代码片段
  • js构造函数和原型对象,ES6中的class,四种继承方式
  • FreeSWITCH 简单图形化界面30 - 使用MYODBC时可能遇到的错误
  • 宝塔-修改docker加速镜像-daemon.json配置文件格式错误!
  • android 与网页交互通过网页修改宿主布局和异常处理——未来之窗行业应用跨平台架构
  • 【OpenAI】第五节(图像生成)利用 OpenAI 的 DALL·E 实现自动化图像生成:从文本到图像的完整教程
  • 【报错解决】C++ 出现错误error: default argument given for parameter的解决办法
  • 15分钟学 Go 第 14 天:切片
  • 详细解读 CVPR2024:VideoBooth: Diffusion-based Video Generation with Image Prompts
  • Matlab 疲劳检测系统【源码 GUI】
  • HarmonyOS 相对布局(RelativeContainer)
  • 【达梦数据库】两台或多台服务器之间免密登录设置-【dmdba用户】
  • 【Ubuntu更换镜像源】
  • 机器视觉-相机、镜头、光源(总结)
  • 48页PPT数字政府智慧政务一网通办解决方案
  • vue2 使用环境变量
  • 34. 在排序数组中查找元素的第一个和最后一个位置
  • Primate:自由灵活的Web框架
  • 系统性能优化——绑核
  • 【JAVA SE】SE总结
  • LVS三种模式工作原理