06、Kafka ------ 各个功能的作用解释(ISR 同步副本、非同步副本、自动创建主题、修改主题、删除主题)

本文主要是介绍06、Kafka ------ 各个功能的作用解释(ISR 同步副本、非同步副本、自动创建主题、修改主题、删除主题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • CMAK 各个功能的作用解释
    • ★ ISR副本 (同步副本)
    • ★ 非同步副本
    • ★ 自动创建主题
    • ★ 修改主题
    • ★ 删除主题

CMAK 各个功能的作用解释

★ ISR副本 (同步副本)

简单来说 ,ISR 副本 就是 Kafka 认为与 领导者副本 同步的副本。

ISR(In Sync Replicas )副本就是Kafka认为与领导者副本的数据同步的副本,根据该定义可看出,领导者副本天然就是ISR副本,毕竟它自己与自己肯定是同步的。甚至在某些情况下,ISR副本集中只有领导者一个副本。

判断一个副本是否符合ISR标准,取决于server.properties文件中replica.lag.time.max.ms配置参数,
该参数的默认值为30000(即30s),Kafka建议将该参数配置在10~30s之间

只要一个追随者副本滞后领导者副本的时间不连续超过replica.lag.time.max.ms 参数值,那Kafka就认为该追随者副本满足ISR标准

就是追随者副本要在30s之内与领导者副本有进行数据同步的操作,这个副本才能被称为 ISR 同步副本。

追随者分区,基本上我们的程序是没办法直接去操作它的,因为追随者分区只是领导者分区的一个后备,因此,追随者分区会自动的和领导者分区保持数据的一致,进行数据同步。

就是这个:
在这里插入图片描述

在 server.properties 文件里面添加这个配置。
追随者副本要在20s之内与领导者副本进行同步数据的操作

在这里插入图片描述

每个节点都加上这个配置
在这里插入图片描述

Kafka官方文档
对这个配置的解释:
在这里插入图片描述




★ 非同步副本

默认:非同步副本不应该被选作领导者副本。

Kafka将所有不符合ISR的副本称为非同步副本。

通常而言,非同步副本落后领导者副本太多,当领导者副本挂掉时,非同步副本不适合被选举成领导者副本,否则会造成数据丢失,这也是Kafka的默认设置。

▲ 剥夺了非同步副本被选为领导者副本的资格,势必会造成可用性降低的问题。

比如将复制因子设为4,这意味着一个分区有1个领导者副本和3个追随者副本,
当领导者副本挂掉时,有可能这3个追随者副本都不符合ISR标准,那就没法选出新的领导者副本了,那这个分区就不可用了。

▲ 启用“非同步副本被选为领导者副本”

将 unclean.leader.election.enable 参数 设为 true 即可开启 “Unclean领导者选举”——允许非同步副本被选为领导者副本。

【注意】:开启“Unclean领导者选举”可以提高Kafka的可用性,但可能会造成数据丢失。

在这里插入图片描述

要开启的话,可以在配置文件中配置开启:

开启这个,在 Kafka 没有 ISR 同步副本可选的情况下,才会在非同步副本里面选择一个作为领导者副本。
在这里插入图片描述




★ 自动创建主题

当发送消息的主题不存在且希望Kafka能自动创建主题时,可在config/server.properties文件中增加如下配置:

设置是否允许自动创建主题(原默认值为true)
allow.auto.create.topics=true

设置自动创建主题时默认的复制因子为3(原默认值为1)
default.replication.factor=3

设置自动创建主题时默认默认分区数(原默认值为1)
num.partitions=2

在这里插入图片描述

把设置也添加进去:

在这里插入图片描述




★ 修改主题

如果要修改主题的分区数、复制因子、以及额外配置参数等,可使用kafka-topics.bat命令的–alter选项,例如如下命令:

kafka-topics.bat --alter ^
–bootstrap-server localhost:9092 ^
–partitions 5 ^
–topic test1

上面命令将test1主题的分区数改为5,

test1 这个 kafka 主题节点,原本是3个分区
在这里插入图片描述

修改分区数量:
记得要指定修改哪个broker节点,这里是修改端口号为 9092的kafka节点。
在这里插入图片描述

修改成功
在这里插入图片描述




★ 删除主题

如果要删除主题,则使用kafka-topics.bat的–delete选项,例如如下命令可删除test1主题。

kafka-topics.bat --delete ^
–bootstrap-server localhost:9092 ^
–topic test1

删除该主题后,该主题所包含的全部分区被删除、该主题下的所有消息也被删除了。

在这里插入图片描述

CMAK 界面删除主题:

在这里插入图片描述

命令删除主题:

在这里插入图片描述

按理说这个test1应该是被删除掉的,现在还存在,先不理。

在这里插入图片描述

直接界面删除,感觉没删除干净,先不理这个,后续再研究。
在这里插入图片描述

这篇关于06、Kafka ------ 各个功能的作用解释(ISR 同步副本、非同步副本、自动创建主题、修改主题、删除主题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/582587

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient