大数据-kafka
文章平均质量分 75
可免费问问题,可以一次订阅,终身免费问问题。本专栏结合作者多年开发经验,主要讲解 kafka 以及各种消息中间件。错误解决以及相关源码分析 ,专栏文章将会持续更新,是最值得订阅的一个专栏,敬请关注!不喜勿定,自己的笔记
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
九师兄
可免费问问题,可以一次订阅,终身免费问问题。工作多年遇到的问题,与一些总结,注意事项等,有些是源码级别的讲解,同时整个博客是成体系的,里面有很多连接互相连接,问题都是拆开的,能让大家遇到问题的时候方便的解决问题,或者提供思路。也可以单独找我解决问题。
展开
-
【kafka】kafka高可用集群故意挂了一台,控制台无法写入数据
一个环境搞成了高可用环境,然后故意挂掉一台,然后想看看数据是否还能正常的写入和消费。kafka的topic详情如下,挂掉的是1001对应的机器。然后尝试控制台写入报错报错信息显示在请求元数据超时时,批处理中包含的记录已过期。这可能是由于停止了一台机器导致集群的状态发生变化,导致生产者无法及时获取到更新的元数据信息。当生产者发送消息时,它需要获取关于主题和分区的元数据信息,以确定消息应该发送到哪个分区。如果生产者无法及时获取到最新的元数据信息,就会出现超时异常。原创 2024-09-18 00:15:00 · 409 阅读 · 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 · 205 阅读 · 0 评论 -
【kafka】kafka指标查询、InstanceNotFound、kafka.server、BrokerTopicMetrics
最近做了一个kafka监控,然后发现报错了,错误信息如下但是查看topic是正常的。原创 2024-07-27 00:30:00 · 493 阅读 · 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 · 10563 阅读 · 0 评论 -
【算法】完美洗牌问题、数组交叉序列(难)
给定一个长度为偶数的数组arr,长度记为2*N。前N个为左部分,后N个为右部分。arr就可以表示为请将数组调整成的样子。原创 2024-06-14 00:30:00 · 422 阅读 · 0 评论 -
【kafka】Found a corrupted index file corresponding to log file __consumer_offsets index
最近看一个kafka集群出问题了,然重启又如下日志具体如下这里想看看这是为什么。原创 2024-06-07 01:45:00 · 270 阅读 · 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 · 357 阅读 · 4 评论 -
【kafka】写入 kafka 有些数据能写入、有些数据不能写入
其实是对方kafka是个集群,但是他们只提供了一个ip给我们,然后只开了这个ip的网络策略。所以有些数据发送失败,有些成功[捂脸哭]这个问题我曾经遇到过类似的,但是这个博客找不到了,哪个博客里面描述的是,一个kafka集群,然后对方不让我们直接访问,而是给我们一个代理机器,然后我们访问代理机器,由代理机器转发,但是有问题,下次找到补个链接。原创 2024-04-16 09:08:29 · 298 阅读 · 0 评论 -
【kafka】Rolled new log segment at offset xxxx
但是上面那个图也说明数据量确实大了,后来发现他们此时有人正在备份数据库。然后他就以为 2ms一下子新增了 241405433条数据。关键是此时消费者的服务器就来了巨量的流量。原创 2024-04-12 07:00:00 · 361 阅读 · 2 评论 -
【kafka】kafka 2.8 版本的kafka topic 分区扩容、创建topic
今天要升级kafka客户端版本,我们的服务端版本是1.1.0,然后客户端版本要升级到kafka 2.8.2,有点不明白公司为啥死都不升级服务端版本,使劲升级客户端版本。今天升级后发现这里面的代码不能使用了,然后需要升级。原创 2024-04-07 23:00:00 · 190 阅读 · 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 · 611 阅读 · 1 评论 -
【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 · 780 阅读 · 2 评论 -
【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 · 478 阅读 · 4 评论 -
【Kafka】Kafka 的 Broker 与 KafkaController 介绍
通过ls命令可以查看kafka相关信息Zookeeper中存储的Kafka信息。转载 2022-03-17 23:00:04 · 1432 阅读 · 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 · 370 阅读 · 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 · 1008 阅读 · 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 · 2173 阅读 · 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 · 765 阅读 · 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 · 1689 阅读 · 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 · 2604 阅读 · 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 · 1149 阅读 · 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 · 666 阅读 · 1 评论 -
【kafka】连接kafka报错 partitions have leader brokers without a matching listener
一个正常的kafka消费者,开始正常,后来报错 2.原因kafka服务集群中某个节点挂掉了.此时需要到相关节点,看看kafka日志如果是磁盘不足够,需要扩容,kafka部分错误日志原创 2022-07-03 09:43:28 · 2886 阅读 · 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 · 4613 阅读 · 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 · 539 阅读 · 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 · 1340 阅读 · 0 评论 -
【kafka】Kafka 幂等 Producer
Kafka提供了“至少一次”的交付语义。这意味着发送的消息可以传递一次或多次。人们真正想要的是“恰好一次”的语义,即重复的消息不会被传递。如果客户端试图向集群发送消息并得到一个网络错误,那么重新尝试将可能导致重复消息。如果在消息传递之前发生了网络错误,则不会发生重复。但是,如果网络错误发生在消息被附加到日志之后,但在响应可以传递给发送者之前,发送者就不知道发生了什么。唯一的选择是重试并冒复制的风险,或者放弃并声明消息丢失。原创 2022-03-27 15:06:55 · 1775 阅读 · 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 · 1205 阅读 · 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 · 2375 阅读 · 0 评论 -
【kafka】kafka 生态系统 Ecosystem
1.概述官网:kafka 生态系统 Ecosystem下面是我们被告知在主发行版之外与Kafka集成的工具列表。我们还没有全部尝试过,所以它们可能不起作用!当然,Clients在这里是单独列出的。2.kafka连接Kafka有一个内置的框架叫做Kafka Connect,用来写入源和接收器,这些源和接收器可以不断地将数据输入到Kafka中,也可以不断地将Kafka中的数据输入到外部系统中。不同应用程序或数据系统的连接器本身是独立于主代码库联合和维护的。Confluent在Confluent .原创 2022-03-27 12:44:06 · 1690 阅读 · 0 评论 -
【Kafka】Kafka 镜像 Kafka mirroring (MirrorMaker)
1.概述Kafka的镜像特性使得维护一个现有Kafka集群的副本成为可能。下图展示了如何使用MirrorMaker工具将一个源Kafka集群镜像到一个目标(镜像)Kafka集群。该工具使用一个Kafka消费者来消费来自源集群的消息,并使用一个嵌入式的Kafka生产者将这些消息重新发布到本地(目标)集群。也有关于镜像制造者的文档 文档2.如何设置镜子设置镜像很简单——在启动目标集群后,只需启动镜像制造者进程。至少,镜像制造者有一个或多个消费者配置,一个生产者配置和一个白名单或黑名单。你需要将消费者.原创 2022-03-27 12:04:55 · 2943 阅读 · 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 · 489 阅读 · 0 评论 -
【kafka】kafka 消息 重放 从 一个 topic 导入 另外一个 topic
1.概述参考:官网重放脚本[lcc@lcc ~/soft/kafka/kafka_2.11-1.1.0]$ bin/kafka-run-class.sh kafka.tools.ReplayLogProducer --broker-list localhost:9092 --inputtopic topic_lcc --outputtopic topic_xjj --sync在另外一个topic钟可以正常的消费[lcc@lcc ~/soft/kafka/kafka_2.11-1.1.0]$.原创 2022-03-26 18:56:06 · 1415 阅读 · 0 评论 -
【Kafka】Kafka 如果 动态 不停止的情况下 修改 消费组 offset
测试点:有人遇到这样的情况,他一个消费者正在消费一个环境的topic,然后他想启动另外一个消费组,但是是使用了同一个消费组,这个去更改 消费组offset 结果发现,无法修改,我这里测试一下。【Flink】Flink 运行 实时修改消费组offset【Kafka】Kafka使用代码设置offset值【Kafka】Kafka 修改某个消费组的偏移量。原创 2022-03-26 18:16:31 · 1263 阅读 · 0 评论 -
【Kafka】Kafka Log compaction 介绍
1.概述转载:https://www.hnbian.cn/posts/a028cfba.htmlLog Compaction是kafka提供的一种整理offset数据的方式。Log Compaction对于有相同key的的不同value值,只保留最后一个版本。如果应用只关心key对应的最新value值,可以开启Kafka的日志清理功能,Kafka会定期将相同key的消息进行合并,只保留最新的value值。如果一个系统使用Kafka来保存topic消费数据的状态,每次有状态变更都会将其写入Kafka中。转载 2022-03-17 23:01:58 · 967 阅读 · 0 评论 -
【Kafka】Kafka版本的 watermark 迟来的消息 直接报错
1.概述今天偶然看到kafka还有这个配置:message.timestamp.difference.max.ms。这个配置的意思如下太久的消息不被 kafka接收broker接收消息时的时间戳与消息中指定的时间戳之间允许的最大差异。如果message.timestamp。type=CreateTime,如果时间戳的差异超过这个阈值,消息将被拒绝。如果message.timestamp.type=LogAppendTime,则忽略此配置。 /** * 优化点: * 太久的消息不被原创 2022-03-12 08:36:03 · 630 阅读 · 0 评论 -
【kafka】kafka broker 限流 topic 限流 配额
1. 概述翻译:配额4.9 配额Kafka集群有能力对请求执行配额来控制客户端使用的代理资源。Kafka broker可以为每组共享配额的客户端强制执行两种类型的客户端配额:网络带宽配额定义字节率阈值(从0.9开始)请求速率配额将CPU利用率阈值定义为网络和I/O线程的百分比(从0.11开始)为什么需要配额?生产者和消费者可能产生/消费非常大量的数据或以非常高的速率生成请求,从而独占代理资源,导致网络饱和,并且通常DOS其他客户端和代理本身。拥有配额可以防止这些问题,而且在大型多租户集群中尤.原创 2022-03-11 20:38:04 · 2243 阅读 · 0 评论 -
【Kafka】Kafka官网翻译 kafka 实现 网络层 消息协议
1.概述翻译:官网实现5. 实现5.1 网络层网络层是一个非常简单的NIO服务器,这里不会详细描述。sendfile实现是通过给MessageSet接口一个writeTo方法来完成的。这允许文件支持的消息集使用更高效的transferTo实现,而不是进程内缓冲写。线程模型是一个单一的接受线程和N个处理器线程,每个线程处理固定数量的连接。这个设计已经在其他地方进行了相当彻底的测试,并且发现易于实现和快速。协议保持得相当简单,以便将来用其他语言实现客户端。5.2信息消息由一个变长报头、一个变长不透.原创 2022-03-11 20:34:59 · 690 阅读 · 0 评论 -
【kafka】Kafka源码解析 - LogSegment以及Log初始化
文章目录1.概述2.LogSegment2.1.LogSegment构造参数2.2 .append2.3 .read2.4 .recover2.5 .truncateTo3.Log3.1 Log 源码结构3.2 Log类的定义3.3 Log类初始化代码3.3.1 loadSegments3.3.2 removeTempFilesAndCollectSwapFiles3.3.3 loadSegmentFiles3.3.4 completeSwapOperations3.3.5 recoverLog1.概述转载 2022-03-11 18:54:44 · 669 阅读 · 0 评论 -
【kafka】kafka LogSegmentOffsetOverflowException segment overflow Detected offset overflow
1.概述偶然kafka报错如下 核心错误关键字: Caught segment overflow error: Detected offset overflow at offset 4266700368 in segment LogSegmen Split segment and retry Split operation is only permitted for segments with overflor具体的错误信息如下[2022-03-09 16:03:06,435] INFO [Log原创 2022-03-10 20:44:44 · 622 阅读 · 0 评论