第三节:kafka sarama 遇到Bug?

news2025/3/1 3:09:35

文章目录

  • 前言
  • 一、先上结果
  • 二、刨根问底
  • 总结


前言

前面两节,我们已经简单应用了sarama的两个类型Client和ClusterAdmin,其中有一个案例是获取集群的ControllerId,但是在后面的测试过程过程中,发现一个问题,返回的ControllerID是随机的,这个是什么原因呢,我们下面分析下


一、先上结果

下图展示了我用四种方式,获取到的ControllerId的信息,分别是
ClusterAdmin 的 DescribeCluster()
ClusterAdmin 的 Controller()
Client的 Controller()
Clinet的 RefreshController()
可以看到每次返回的四个结果都不一致
在这里插入图片描述
开始我也怀疑是不是我的kafka集群本身有问题,但是通过kafka工具查看

./bin/kafka-metadata-quorum.sh --bootstrap-server 172.20.37.227:34997  descr
ibe  --status

集群的Controller的LeaderID尽管在更新,但是不会短时间内迅速切换,所以集群没有问题。
在这里插入图片描述

二、刨根问底

ControllerID返回结果随机是什么原因呢,一顿查找,终于是找的一个类似的问题。

传送门:
DescribeCluster() returns random broker ID as the controller ID under KRaft mode #2521

这个开发者也是遇到和我一样的困惑,为什么获取到的ControllerID和kafka-metadata-quorum.sh获取的不一致呢。
在这里插入图片描述
解答在这里:
在这里插入图片描述
kafka 在kraft模式是希望您将请求发送到集群中的任何节点,并且它会相应地进行负载平衡

目前我们用的sarama v1.42.2版本还是有这个问题的,但是作者,提示会在后期更新类似的方法,获得我们需要的结果。
在这里插入图片描述

总结

sarama本身也是遵循了kafka kraft版本的代码行为,就使用来说,对客户端是无所谓的,有人相应就好,但是作为运维和排查问题角度,还是需要一个方法,获取到目前集群的Controler的Leader具体是哪个节点。我们可以继续关注这个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1471032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

锂电池SOC估计 | PyTorch实现基于Basisformer模型的锂电池SOC估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 PyTorch实现基于Basisformer模型的锂电池SOC估计 锂电池SOC估计,全新【Basisformer】时间序列预测 1.采用自适应监督自监督对比学习方法学习时序特征; 2.通过双向交叉注意力机制计算历史序列和…

Windows系统搭建Elasticsearch引擎结合内网穿透实现远程连接查询数据

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎,它提供了一个分布式、多…

国漫年番成趋势?但只有这5部最值得看

自从《斗罗大陆》动画爆火之后,越来越多国漫都开始以年番形式播出,每周都能追自己喜欢的动画也是观众们所期待的。但其实年番对制作公司的要求很高,如果技术跟不上难免出现质量下滑的问题。今天就带大家盘点一下目前在播的最值得看的5部国漫年…

【LeetCode周赛】第 386 场周赛

目录 3046. 分割数组 简单3047. 求交集区域内的最大正方形面积 中等3048. 标记所有下标的最早秒数 I 中等 3046. 分割数组 简单 3046. 分割数组 分析: 查看数组内有没有重复超过2次的数即可。 代码: class Solution { public:bool isPossibleToSplit…

【GPTs分享】GPTs分享之Write For Me

Write For Me 是一个专门定制的GPT版本,旨在为用户提供高质量的文本内容创作服务。它适用于各种写作需求,从商业计划、学术文章到创意故事等。下面是从简介、主要功能、使用案例、优点和局限性几个方面对Write For Me 的详细介绍。 简介 Write For Me …

WPF 开发调试比较:Visual Studio 原生和Snoop调试控制台

文章目录 前言运行环境简单的WPF代码实现一个简单的ListBoxVisual Studio自带代码调试热重置功能测试实时可视化树查找窗口元素显示属性 Snoop调试使用Snoop简单使用调试控制台元素追踪结构树Visual/可视化结构树Logical/本地代码可视化树AutoMation/自动识别结构树 WPF元素控制…

统计学基础不强?参加六西格玛培训班提升学习效果

六西格玛培训是一种在管理学上非常重要的方法论和系统体系,它指导企业进行管理,并代表一种逻辑的、统计的和科学的思维方式。在许多企业中,如GE和霍尼韦尔,六西格玛培训已经成为企业发展战略的重要组成部分,并融入到企…

震惊!事业型男主竟徒手扳断月老搭的三条钢筋!

“月老,看看我啊” “月老我都27了,也帮帮我” 弹幕上满屏飘过“向月老求姻缘”的调侃,而动画里的男主李长寿却视而不见,一心埋头干事业。 自动画《师兄啊师兄》(以下简称“师兄”)第一季开播霸榜优酷多个…

NotePad2轻便够用的文本编辑器

下载方式: 360软件管家里就可以安装,非常的方便。 打开后,界面如下: 可以拖拽打开文本,和notepad的功能差不多,可以平行替代。

Linux之vim的使用详细解析

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 目录 一.vim简介 二.vim的基本概念 三.vim的基本操作 3.1准备 …

深入探索 JS 的提升机制、函数与块作用域以及函数表达式和声明(上)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

SpringBoot和ApiFox整合快速上手

前置:IDEA版本IntelliJ IDEA 2023.2.4,Apifox 2.5.6 安装插件:Apifox Helper1.2.1 目录 1.文档生成 2.提取登录接口token 1.文档生成 把密钥配置到 修改日志编码: 导入成功:文档就会出现 2.提取登录接口token 之后我们再使用的…

综合服务 IntServ

目录 综合服务 IntServ IntServ 定义的两类服务 IntServ 的四个组成部分 流 (flow) 资源预留协议 RSVP RSVP 协议的工作原理 IntServ 体系结构在路由器中的实现 综合服务 IntServ 体系结构存在的主要问题 综合服务 IntServ 综合服务 IntServ (Integrated Services) 可…

五种多目标优化算法(MOCS、MOFA、NSWOA、MOAHA、MOPSO)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤: 1. 定义问题:首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数,这些目标函数可能…

用于电机控制应用的动态制动电阻器?

这种复杂的医疗系统中,高度可靠的无源元件始终是必不可少的。在单个设计中,每个有源集成电路 (IC) 需要多达 20 个无源元件。通常需要专业元件,这是实现商品、批量生产的电阻器产品领域之外的特定应用价值所必需的。设…

微信小程序-宿主环境-开发文档学习笔记

查看更多学习笔记:GitHub:LoveEmiliaForever 微信小程序开发指南 微信小程序开发文档 渲染层和逻辑层 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层 渲染层和数据相关。逻辑层负责产生、处理数据。逻辑层通过 Page 实例的 setD…

matlab simulink变压器温度仿真

1、内容简介 略 48-可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 matlab simulink变压器温度仿真_哔哩哔哩_bilibili 4、参考论文 略 大型油浸风冷变压器绕组温度场分析_高原 基于顶层油温的变压器绕组热点温度计算改进模型_陈伟根 基于热电类比理论的油浸式电…

共同学习|Spring Cloud Alibaba一一Nacos配置

Nacos配置中心 在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。 从Nacos中拉去配置文件 pom文件 2、bootstrap.yml 修改application.yml为bootstrap.yml spring:cloud: nacos:config:server-addr: localhost:8848 #nacos服务地址…

node14下运行项目报错:regeneratorRuntime is not defined

regeneratorRuntime is not defined,这是由于配置babel出错问题,由于使用了es7语法如async/await而当前babel版本过低 解决: npm install -D babel-plugin-transform-runtime babel-runtime 安装完成后在.babelrc文件下配置: &qu…

python56-Python的断言

断言语句和if分支有点类似它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发AssertionError错误。 # !/usr/bin/env python# -*- coding: utf-8 -*-# Time : 2024/01# Author : Laopiage input("请输入你的年龄&#xff1a…