
2025最新-大数据-kafka
文章平均质量分 76
可免费问问题,可以一次订阅,终身免费问问题。本专栏结合作者多年开发经验,主要讲解 kafka 以及各种消息中间件。错误解决以及相关源码分析 ,专栏文章将会持续更新,是最值得订阅的一个专栏,敬请关注!不喜勿定,自己的笔记
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
九师兄
可免费问问题,可以一次订阅,终身免费问问题。工作多年遇到的问题,与一些总结,注意事项等,有些是源码级别的讲解,同时整个博客是成体系的,里面有很多连接互相连接,问题都是拆开的,能让大家遇到问题的时候方便的解决问题,或者提供思路。也可以单独找我解决问题。
展开
-
【kafka】Flink消费kafka、bootstrap.servers参数中的一台机器挂掉影响消费吗?
如果你的 Kafka topic 没有配置副本(replicas),而且挂掉的节点是包含主分区(leader)的机器,那么可能会对可用性和数据的持久性产生严重影响。重平衡: 当 Kafka 消费者组成员发生变化时(例如,某个消费者实例启动或关闭),可能会触发消费者组的重平衡。当一个没有副本的主分区所在的机器(也就是 leader 所在的机器)挂掉时,这会导致主分区不可用,因为没有备份。在这种情况下,如果没有配置副本,一旦主分区的机器挂掉,相关数据将不可访问,除非你能够修复挂掉的机器或者重新启动这个主分区。原创 2025-02-05 11:36:21 · 164 阅读 · 0 评论 -
【MQ】如何保证消息不被重复消费
利用数据库唯一键约束可以利用我们的乐观锁插入消费记录不丢和不重是矛盾的(在分布式场景下),总的来说,开发者根据业务的实际需求来选择相应的方式即可。原创 2025-01-10 00:15:00 · 238 阅读 · 0 评论 -
【kafka】Kafka如何保证消息不丢失?
Kafka如何保证消息不丢失?Kafka通过Producer、Broker和Consumer这三个角度来保证消息不丢失。原创 2025-01-08 02:15:00 · 226 阅读 · 0 评论 -
【kafka】kafka分区的分配策略以及再平衡
一个consumer group 中有多个 consumer 组成, 一个 topic 有多个 partition 组成,现在的问题是,到底由哪个 consumer 来消费哪个 partition 的数据。Kafka 有四种主流的分区分配策略:Range、RoundRobin、Sticky、CooperativeSticky。可以通过配置参数 partition.assignment.strategy,修改分区的分配策略。默认策略是 Range+ CooperativeSticky。原创 2024-12-28 19:30:00 · 246 阅读 · 0 评论 -
【kafka】kafka高可用集群故意挂了一台,控制台无法写入数据
一个环境搞成了高可用环境,然后故意挂掉一台,然后想看看数据是否还能正常的写入和消费。kafka的topic详情如下,挂掉的是1001对应的机器。然后尝试控制台写入报错报错信息显示在请求元数据超时时,批处理中包含的记录已过期。这可能是由于停止了一台机器导致集群的状态发生变化,导致生产者无法及时获取到更新的元数据信息。当生产者发送消息时,它需要获取关于主题和分区的元数据信息,以确定消息应该发送到哪个分区。如果生产者无法及时获取到最新的元数据信息,就会出现超时异常。原创 2024-09-18 00:15:00 · 508 阅读 · 0 评论 -
【kafka】Error when handling request Name: FetchRequest; Version: 2; CorrelationId: 829202621
检查 Kafka 版本:确保您使用的 Kafka 版本与您的应用程序和其他依赖项兼容,并根据需要升级 Kafka 版本。由于一个分区可能会被分成多个段,每个段有不同的起始和结束偏移量。Kafka 版本不兼容:可能存在 Kafka 版本不兼容或升级过程中出现了一些问题。配置错误:某些配置参数可能不正确,导致无法正确处理 FetchRequest 请求。检查配置参数:检查 Kafka 配置文件中与分区相关的配置参数,确保它们正确设置。数据损坏:分区中的数据文件可能已损坏,导致无法正确读取分段信息。原创 2024-08-16 00:30:00 · 299 阅读 · 0 评论 -
【kafka】kafka指标查询、InstanceNotFound、kafka.server、BrokerTopicMetrics
最近做了一个kafka监控,然后发现报错了,错误信息如下但是查看topic是正常的。原创 2024-07-27 00:30:00 · 544 阅读 · 0 评论 -
【kafka】Timeout of 60000ms expired before the position for partition could be determined
某环境FLink无法连接kafka,然后报错如下查看topic详情是正常的。调整也没有作用。查看 kafka 偏移量 ,好像没有这个消费组,说明没有创建在服务器上控制台消费数据,发现是正常的最后telnet发现网络不通最终发现配的虽然是IP,但是kafka返回的是host。原创 2022-02-17 20:57:15 · 11312 阅读 · 0 评论 -
【算法】完美洗牌问题、数组交叉序列(难)
给定一个长度为偶数的数组arr,长度记为2*N。前N个为左部分,后N个为右部分。arr就可以表示为请将数组调整成的样子。原创 2024-06-14 00:30:00 · 466 阅读 · 0 评论 -
【kafka】Found a corrupted index file corresponding to log file __consumer_offsets index
最近看一个kafka集群出问题了,然重启又如下日志具体如下这里想看看这是为什么。原创 2024-06-07 01:45:00 · 330 阅读 · 0 评论 -
【kafka】Kafka Consumer Error Stream frame descriptor corrupted
我们今天遇到一个问题,同一个topic名称叫topic_lcc,这个topic同时被Flink消费和web客户端消费,但是flink消费没有报错(也可能设置忽略报错了),web端消费报错,错误信息如下2.源码分析在最前的的readHeader中报错默认有这四种报错我们可以运行已有的测试类根据以前的测试类:【kafka】kafka NoSuchElementException ArrayDeque getLast 压缩方式不同kafka 生产者和服务器才能压缩kafka生产者压缩是把压缩方式写在头原创 2024-05-09 23:15:00 · 438 阅读 · 4 评论 -
【kafka】写入 kafka 有些数据能写入、有些数据不能写入
其实是对方kafka是个集群,但是他们只提供了一个ip给我们,然后只开了这个ip的网络策略。所以有些数据发送失败,有些成功[捂脸哭]这个问题我曾经遇到过类似的,但是这个博客找不到了,哪个博客里面描述的是,一个kafka集群,然后对方不让我们直接访问,而是给我们一个代理机器,然后我们访问代理机器,由代理机器转发,但是有问题,下次找到补个链接。原创 2024-04-16 09:08:29 · 425 阅读 · 0 评论 -
【kafka】Rolled new log segment at offset xxxx
但是上面那个图也说明数据量确实大了,后来发现他们此时有人正在备份数据库。然后他就以为 2ms一下子新增了 241405433条数据。关键是此时消费者的服务器就来了巨量的流量。原创 2024-04-12 07:00:00 · 447 阅读 · 2 评论 -
【kafka】kafka 2.8 版本的kafka topic 分区扩容、创建topic
今天要升级kafka客户端版本,我们的服务端版本是1.1.0,然后客户端版本要升级到kafka 2.8.2,有点不明白公司为啥死都不升级服务端版本,使劲升级客户端版本。今天升级后发现这里面的代码不能使用了,然后需要升级。原创 2024-04-07 23:00:00 · 258 阅读 · 1 评论 -
【Kafka】flink消费kafka报错 rebalanced and assigned the partitions to another member
场景:消费kafka写入hdfs时,要从spark任务迁移为flink任务消费,为保证不丢数据,用同一个groupid消费数据flink消费数据,提交不了offset到kafka,报错如下原因:kafka的消费模式分为此种场景会发生standalone consumer(assign()消费模式)与consumer group冲突。原创 2024-04-18 06:15:00 · 683 阅读 · 1 评论 -
【Kafka】kafka 如何避免消息被重复消费
要想了解这个问题该怎么解决,首先我们要明白,导致kafka 重复消费的原因有哪些?这个首先看MQ的一般情况,什么情況会导致消息被重复消费呢?生产者:生产者可能会重复推送一条数据到 MQ 中,比如 Controller接口被重复调用了2次,没有做接口幂等性导致的;MQ:在消费者消费完准备响应 ack 消息消费成功时,MQ 突然挂了,导致MQ 以为消费者还未消费该条数据,MQ 恢复后再次推送了该条消息,导致了重复消费。原创 2025-01-11 00:15:00 · 355 阅读 · 0 评论 -
【kafka】Timeout expired before the position for partition could be determined
因为这个环境是已经存在的,以前的kafka容器是1.0版本,但是现在要验证一个新的环境kafka 3.6.0。我不想重新做,然后我想直接在flink1里面直接安装kafka 3.6版本。然后把kafka的端口映射打开,将kafka内部的9194端口,映射到外面的19194端口,然后在宿主机上查看端口。可以看到kafka端口是通的,zk端口也是通的,但是生产的时候报错,而且一直没找到解决方案。发现端口映射已经正常了。然后写了一个代码进行验证。然后进行消费,可以看到可以正常的进行消费。首先说一下这个环境特征。原创 2023-12-29 21:28:34 · 898 阅读 · 2 评论 -
【kafka】kafka 3.6.0版本KRaft模式报错The broker does not support METADATA
你这个broker不是krait模式的,启动的时候看看配置文件是不是指定错了。我以为是我的问题,后来验证我写了一个普通的消费者链接的时候任然报错。但是Flink消费的时候报错。然后再次生产和消费就可以了。docker构建方式如下。很多人漏了kraft。后面运维更改了模式如下。原创 2025-01-08 01:45:00 · 19 阅读 · 0 评论 -
【Kafka】Kafka 删除topic、然后重建会接着上次消费位置消费吗?
今天在群里遇到这样一个问题:flink 消费2个kafka topic a,b,状态成功保存在savepoint,途中删掉一个topic a,运行一会再把这个topic a加回来,这时候这个topic a 的状态就无法读取了,会重新消费, 但是偏移量是还保存在kafka _consumer_offsets 里面,有没有办法能让他继续从之前的offset 消费呢?这个问题,我们先拆分一下。原创 2024-04-02 14:54:47 · 600 阅读 · 4 评论 -
【kafka】Kafka-Kraft 集群模式
左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理。这样做的好处有以下几个:Kafka 不再依赖外部框架,而是能够独立运行;原创 2025-01-04 15:02:03 · 141 阅读 · 0 评论 -
【kafka】kafka group coordinator 辅助实现消费者组的初始化和分区的分配
每个消费者都会和coordinator保持心跳(默认3s),一旦超时(session.timeout.ms=45s),该消费者会被移除,并触发再平衡;或者消费者处理消息的时间过长(max.poll.interval.ms5分钟),也会触发再平衡。coordinator节点选择 = groupid的hashcode值 % 50( __consumer_offsets的分区数量)Coordinator就把消费方案下发给各个consumer。把消费方案发给coordinator。leader会负责制定消费方案。原创 2024-12-28 19:15:00 · 34 阅读 · 0 评论 -
【Kafka】Kafka 的 Broker 与 KafkaController 介绍
通过ls命令可以查看kafka相关信息Zookeeper中存储的Kafka信息。转载 2022-03-17 23:00:04 · 1525 阅读 · 0 评论 -
【javassist】使用javassist修改kafka源码AbstractCoordinator类
在以前遇到kafka消费组死掉,一直没去确认kafka什么情况下会导致消费组死掉,因为直接看源码,看待调用的地方比较多,好几次都想直接修改源码,但是因为要改动的比较多,怕以后不兼容,然后前几天学了字节码相关的,发现这个非常的好用。【kafka】kafka 查看 GroupCoordinator 和 ConsumerCoordinator【kafka】消费组 死掉 kafka Marking the coordinator dead for group。原创 2023-05-03 10:43:48 · 410 阅读 · 0 评论 -
【kafka】Received exception when fetching the next record seek past the record continue consumption
一个环境,kafka正常,名称叫topic_lcc,然后这个topic在三个地方使用然后这个消费组报错信息如下对应的代码如下xxx后来无论是创建单个分区的topic、还是共用一个消费组,都不能复现这个问题。原创 2024-05-10 00:30:00 · 1205 阅读 · 4 评论 -
【kafka】Timed out waiting for a node assignment
在做flink任务的时候,报错 详细错误如下在SourceCoordinator中我们调用了start方法启动.启动方法主要做了2件事创建代码如下source.createEnumerator,这里创建仅仅是赋值没啥重要的2.启动Enumerator启动Enumerator方法中也是主要做了3件事2.1 构建kafka客户端构建kafka客户端主要调用了kafka的方法2.2 发现分区发现分区的逻辑如下2.2.1 getPartitionChanges这里我们主要看看getPartiti原创 2022-12-06 22:15:00 · 2659 阅读 · 0 评论 -
【Kafka】Kafka指标报告器 MetricsReporter ClusterResourceListener
写这篇文章是在 【kafka】kafka 如何开启 kafka.consumer的监控指标项 在这篇文章中,我们简单的介绍了的使用方法。本章节我们主要讲解一下 指标体系。消费者相关的指定指标相关的主要1.2.2 生产者生产者同上FakeMetricsReporter 就是一个空实现,什么都不做。3.JmxReporterJmxReporter是一个默认的jmx注册类。初始化中主要做了2件事,1是添加到map中,。二是注册指标这里主要是将指标添加到mbean 关联起来获取一个jmx长名称3.2原创 2022-12-01 23:45:00 · 863 阅读 · 2 评论 -
【Kafka】华为kafka认证报错 Server not found in Kerberos database (7) - LOOKING_UP_SERVER
最近要进行华为的环境认证,然后我他们说要他们的包,我是有2个服务,一个是web服务,一个是FLink任务,因为web的好替换我,直接替换成他们的包。我把他们的包放到maven中如下然后我在flink中引入了相关的包如下,但是我们的flink版本比较高是,flink 1.11他们提供的包是1.7.2 flink版本我们没有替换,然后取运行,运行报错详细错误信息如下根据文档:华为kafka认证报错 Server not found in Kerberos database (7) - LOOKING_原创 2023-09-27 21:11:45 · 2015 阅读 · 0 评论 -
【Flink】Slot request bulk is not fulfillable! Could not allocate the required slot
今天遇到一个问题,对方的环境总是提示没有资源,然后一直在提交中,然后我看了一下他们的yarn资源如下发现只有72G,然后已经用了64G,但是我最后一个任务很小,只用2G。按理说不会这样。后面我打开详情查看。发现任务总体是运行中,但是实际上一直在调度中,在申请资源然后过了一会报错了,错误信息如下这里大概猜测是没有资源了。后面我们排查发现,我们最大并行度是8,但是我们的slot是4,这是不对的。但是这个不是我们手动配置的,是根据yarn节点、内存和kafka节点数来计算的,但是计算的不对。原创 2023-09-24 15:30:09 · 3295 阅读 · 0 评论 -
【kafka】GSS initiate failed credentials provided This may be caused by Java AUTHENTICATION_FAILED
zookeeper默认使用 zookeeper 作为服务名称,如果你想改变它,那么可以使用。-Dzookeeper.sasl.client.username=zk 来指定它。今天操作一个kerberos认证的环境,然后运行kafka消费者的时候报错。但是流任务启动报错,构建kafka配置的时候如下。然后重新配置后,就不报错这个了,但是又报错。然后验证kafka控制台也是正常的。首先kafka验证是正常的。后来在源码中找到解决方案。...原创 2022-08-05 18:57:35 · 1247 阅读 · 1 评论 -
【kafka】kafka CoordinatorClient类与CoordinatorRestResource类的使用与介绍
今天偶然看到kafka有个类CoordinatorClient,然后因为新遇到也不不知道干啥的,就去看看然后写了一个测试类如下/***测试点今天偶然看到这个类,然后必须要看看这个类是干嘛的呀有什么用*先随便测试一下吧logger.info("准备获取信息");}但是刚刚运行就报错00748).00748).00748).00748).00748).00748).00748).00748).00748).00748).00........原创 2022-07-28 22:20:16 · 709 阅读 · 1 评论 -
【kafka】连接kafka报错 partitions have leader brokers without a matching listener
一个正常的kafka消费者,开始正常,后来报错。原创 2022-07-03 09:43:28 · 3256 阅读 · 0 评论 -
【Kafka】Cancelled fetchMetadata request with correlation id due to node -1 being disconnected
1.概述在处理这个问题:【kafka】GSS initiate failed credentials provided This may be caused by Java AUTHENTICATION_FAILED 这个问题之后,就遇到了这个问题。报错信息如下2022-04-07 07:50:26 [kafka-admin-client-thread | adminclient-1] INFO o.a.k.c.a.i.AdminMetadataManager - [AdminClient clie原创 2022-05-16 21:25:14 · 4987 阅读 · 0 评论 -
【Kafka】KIP-285 Connect Rest Extension Plugin kafka 连接 rest 的插件
1.概述翻译:KIP-285: Connect Rest Extension PluginSkip to end of metadata2.动机连接框架提供了用于管理连接器生命周期的REST API。在大多数企业中,保护API并向端点添加授权是必要的。我们可以在框架中添加身份验证和授权功能。但是安全性需求是如此广泛,在框架中支持所有的安全性需求是不现实的。因此,我们必须为用户提供插入资源的能力,以帮助实现所需的能力。而安全是这个扩展的主要用例。不仅限于此。一些常见的用例是构建自定义身份验证.原创 2022-04-16 19:15:13 · 579 阅读 · 0 评论 -
【kafka】Kafka Leader选举流程和选举策略
创建新的Topic的时候,并没有发生Leader选举的操作, 而是默认从分区对应的所有在线副本中选择第一个为leader, 然后isr就为 所有在线副本,再组装一下当前的controller_epoch信息,写入到zk节点/brokers/topics/{Topic名称}/partitions/{分区号}/state中。遍历上面写入zk成功的分区, 然后更新Controller里面的分区leader和isr的内存信息 并发送LeaderAndISR请求,通知对应的Broker Leader更新了。转载 2022-03-28 22:07:15 · 1657 阅读 · 0 评论 -
【kafka】Kafka 幂等 Producer
Kafka提供了“至少一次”的交付语义。这意味着发送的消息可以传递一次或多次。人们真正想要的是“恰好一次”的语义,即重复的消息不会被传递。如果客户端试图向集群发送消息并得到一个网络错误,那么重新尝试将可能导致重复消息。如果在消息传递之前发生了网络错误,则不会发生重复。但是,如果网络错误发生在消息被附加到日志之后,但在响应可以传递给发送者之前,发送者就不知道发生了什么。唯一的选择是重试并冒复制的风险,或者放弃并声明消息丢失。原创 2022-03-27 15:06:55 · 1829 阅读 · 0 评论 -
【Kafka】Kafka 增量 Rebalancing: Support and Policies
1.概述翻译:Incremental Cooperative Rebalancing: Support and Policies2.介绍在Apache Kafka中,分布式应用进程之间的再平衡得到了极大的增强,因为它被作为逻辑从Kafka代理中解耦出来,并被转移到客户端,特别是Kafka消费者端。这个模式已经健壮地运行了一段时间,并且已经成功地使用了,除了Kafka Consumer本身,Kafka Streams, Kafka Connect,以及Apache Kafka代码库之外的其他应用。它.原创 2022-03-27 14:53:43 · 1253 阅读 · 0 评论 -
【Kafka】Kafka 动态调整 日志级别 Log4jController
1.概述翻译:Dynamically Adjust Log Levels in Connect2.动机Kafka Connect不提供一个开箱即用的工具来更改日志级别。在调试连接器或Connect框架时,必须更新log4j。属性文件,并重新启动worker以查看新的日志。在大多数情况下,这是很麻烦的,并且重新启动worker有时会通过重置内部状态来隐藏bug。3. 修改建议Kafka代理目前有一个通过mbean调整日志级别的工具。这是一个scala实用程序,我们将用Java重写它,然后转移到Ka.原创 2022-03-27 14:35:36 · 2471 阅读 · 0 评论 -
【kafka】kafka 生态系统 Ecosystem
1.概述官网:kafka 生态系统 Ecosystem下面是我们被告知在主发行版之外与Kafka集成的工具列表。我们还没有全部尝试过,所以它们可能不起作用!当然,Clients在这里是单独列出的。2.kafka连接Kafka有一个内置的框架叫做Kafka Connect,用来写入源和接收器,这些源和接收器可以不断地将数据输入到Kafka中,也可以不断地将Kafka中的数据输入到外部系统中。不同应用程序或数据系统的连接器本身是独立于主代码库联合和维护的。Confluent在Confluent .原创 2022-03-27 12:44:06 · 1740 阅读 · 0 评论 -
【Kafka】Kafka 镜像 Kafka mirroring (MirrorMaker)
1.概述Kafka的镜像特性使得维护一个现有Kafka集群的副本成为可能。下图展示了如何使用MirrorMaker工具将一个源Kafka集群镜像到一个目标(镜像)Kafka集群。该工具使用一个Kafka消费者来消费来自源集群的消息,并使用一个嵌入式的Kafka生产者将这些消息重新发布到本地(目标)集群。也有关于镜像制造者的文档 文档2.如何设置镜子设置镜像很简单——在启动目标集群后,只需启动镜像制造者进程。至少,镜像制造者有一个或多个消费者配置,一个生产者配置和一个白名单或黑名单。你需要将消费者.原创 2022-03-27 12:04:55 · 3069 阅读 · 0 评论 -
【kafka】kafka 一些实用 程序 实用 脚本
1.概述官网System tools can be run from the command line using the run class script (i.e. bin/kafka-run-class.sh package.class --options)2.消费组offset查询This tool has been removed in Kafka 1.0.0. Use kafka-consumer-groups.sh to get consumer group details.Di.原创 2022-03-28 01:45:00 · 523 阅读 · 0 评论