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

kafka 副本集设置和理解

  最近在做集群高可用验证的时候,遇到了一个kafka 副本集高可用的问题,在这里分析总结一下。

  当前的部署情况是kafka集群有三个节点;在做集群高可用验证的时候,先shutdown一个服务器实例之后,再验证服务相关的高可用,当shutdown一个实例之后,发现kafka 有的topic可以正常发送和接收消息,而有的topic 却不能。

  报错的关键日志:

org.apache.kafka.common.errors.TimeoutException: Expiring 53 record(s) for TWAMP_LINK_TOPIC-0: 120000 ms has passed since batch creation

  再经过层层排查之后,通过以下命令,找到了关键点。

kafka-run-class kafka.admin.TopicCommand --describe --topic TUNNEL_STATE_TOPIC --bootstrap-server kafka2:9092

  注意将 --topic 之后的topic 换成不同的topic进行查看,具体显示如下:

image

根据提供的两个Topic的描述信息,可以得出以下结论:

再切换了之后,发现有的topic 存在正常的leader、 而有的topic 却不存在leader。 而kafka 发送消息是通过leader去发送的,没有leader就会异常。

输出结果详解:

第一行:Topic 级别的概要信息
Topic: TWAMP_LINK_TOPIC TopicId: iw-DWE9jSBKsxT7NJwQBzQ PartitionCount: 1 ReplicationFactor: 1 Configs:

第二行:分区级别的详细信息
Topic: TWAMP_LINK_TOPIC Partition: 0 Leader: none Replicas: 3 Isr: 3

此处需要注意两个配置容易误解:

1、ReplicationFactor: 1 (副本因子:1)

  • 这是最重要的配置!它意味着Kafka只会为这个分区的数据创建1个副本。这是数据的冗余度,决定了容错能力。

  • 1 表示 “没有冗余”。就像只把文件打印了一份。

2、Replicas: 3 (副本所在Broker ID:3)

  • 这个字段只是告诉你:那唯一的一个副本,被放置在了Broker ID 为 3 的服务器上。

  • 它不是说有三个副本。这里的 3 是一个Broker编号,不是数量。

  • 如果把 Replicas: 3 换成 Replicas: 1,意思就是那唯一的一个副本在Broker 1上。

 解决方法:

  重新创建topic,并设置topic的副本因子的数量大于1;从而保证高可用

kafka-topics.sh --create --topic TWAMP_LINK_TOPIC \
--partitions 1 \
--replication-factor 3 \  # 关键!必须设置为 3,为每个分区创建3个副本
--bootstrap-server kafka1:9092

  将副本因子设置为2 之后再查看配置如下:  

image

第一行:Topic 概要

第二行:分区详情

文章转载自:香吧香

原文链接:kafka 副本集设置和理解 - 香吧香 - 博客园

体验地址:JNPF快速开发平台

http://www.xdnf.cn/news/1365427.html

相关文章:

  • kafka常用命令
  • 宋红康 JVM 笔记 Day07|本地方法接口、本地方法栈
  • Linux(四):进程状态
  • python项目中pyproject.toml是做什么用的
  • SDC命令详解:使用set_timing_derate命令进行约束
  • K8s高可用:Master与候选节点核心解析
  • 基于MalConv的恶意软件检测系统设计与实现
  • 力扣(用队列实现栈)
  • SSH 反向隧道:快速解决服务器网络限制
  • 蜗牛播放器 Android TV:解决大屏观影痛点的利器
  • 【科研绘图系列】R语言绘制代谢物与临床表型相关性的森林图
  • 从0死磕全栈第1天:从写一个React的hello world开始
  • leetcode 238 除自身以外数组的乘积
  • PHP学习笔记1
  • 基于MATLAB实现支持向量机(SVM)进行预测备
  • 数据结构青铜到王者第三话---ArrayList与顺序表(1)
  • 【数学·三角函数】两角和差公式 二倍角公式
  • idea官网选择具体版本的下载步骤
  • easy-dataset的安装
  • 【STM32】G030单片机的独立看门狗
  • 不止效率工具:AI 在文化创作中如何重构 “灵感逻辑”?
  • 《拉康精神分析学中的欲望辩证法:能指的拓扑学与主体的解构性重构》
  • 【科研绘图系列】R语言浮游植物生态数据的统计与可视化
  • [系统架构设计师]专业英语(二十二)
  • 系统架构设计师-计算机系统存储管理-页式、段氏、段页式模拟题
  • 探索量子计算的新前沿
  • 【Linux】timerfd和POSIX定时器(timer_create)
  • ASW3642 pin√pin替代TS3DV642方案,可使用原小板只需简单调整外围|ASW3642 HDMI二切一双向切换器方案
  • prepare_model_for_kbit_training()函数解析(56)
  • 解决getLocation获取当前的地理位置,报错:getLocation:fail auth deny及方法封装