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

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

基于SpringBoot实现文件秒传功能

《基于SpringBoot实现文件秒传功能》在开发Web应用时,文件上传是一个常见需求,然而,当用户需要上传大文件或相同文件多次时,会造成带宽浪费和服务器存储冗余,此时可以使用文件秒传技术通过识别重复... 目录前言文件秒传原理代码实现1. 创建项目基础结构2. 创建上传存储代码3. 创建Result类4.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专