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

目录

  • [CMAK 各个功能的作用解释](#CMAK 各个功能的作用解释)
    • [★ ISR副本 (同步副本)](#★ 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官方文档

对这个配置的解释:

领导者分区有几个追随者分区,取决于我们设置的复制因子有多少,如果复制因子是3,那么就意味着每个领导者分区 2个 追随者分区。

复制因子是3 ,就表明有3个分区,其中1个是领导者分区,2个是追随者分区。

★ 非同步副本

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

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应该是被删除掉的,现在还存在,先不理。

直接界面删除,感觉没删除干净,先不理这个,后续再研究。

相关推荐
为什么不问问神奇的海螺呢丶2 小时前
n9e categraf rabbitmq监控配置
分布式·rabbitmq·ruby
TTBIGDATA6 小时前
【Atlas】Atlas Hook 消费 Kafka 报错:GroupAuthorizationException
hadoop·分布式·kafka·ambari·hdp·linq·ranger
m0_687399848 小时前
telnet localhost 15672 RabbitMQ “Connection refused“ 错误表示目标主机拒绝了连接请求。
分布式·rabbitmq
indexsunny8 小时前
互联网大厂Java面试实战:微服务与Spring生态技术解析
java·spring boot·redis·kafka·mybatis·hibernate·microservices
陌上丨8 小时前
生产环境分布式锁的常见问题和解决方案有哪些?
分布式
新新学长搞科研8 小时前
【智慧城市专题IEEE会议】第六届物联网与智慧城市国际学术会议(IoTSC 2026)
人工智能·分布式·科技·物联网·云计算·智慧城市·学术会议
泡泡以安9 小时前
Scrapy分布式爬虫调度器架构设计说明
分布式·爬虫·scrapy·调度器
编程彩机10 小时前
互联网大厂Java面试:从Spring Boot到分布式事务的技术场景解析
spring boot·kafka·分布式事务·微服务架构·java面试·技术解析
没有bug.的程序员10 小时前
RocketMQ 与 Kafka 深度对垒:分布式消息引擎内核、事务金融级实战与高可用演进指南
java·分布式·kafka·rocketmq·分布式消息·引擎内核·事务金融
上海锟联科技10 小时前
250MSPS DAS 在地铁监测中够用吗?——来自上海锟联科技的工程实践
分布式·科技·分布式光纤传感·das解调卡·光频域反射·das