Kafka
文章平均质量分 60
Matty_Blog
当你的才华还撑不起你的野心时,
你就应该静下心来学习。
展开
-
Kafka实战:KafkaConsumer#seek方法不生效
文章目录1. 背景2. 示例3. 结论1. 背景现需要在Kafka管理平台中加入数据预览功能,浏览topic最新的10条数据,我们需要用startOffset = HighWatermark - 10公式求出起始startOffset,从startOffset开始查询分区中的数据。但是,在使用KafkaConsumer#seek方法设置offset时不生效,KafkaConsumer#poll始终无法拉取到历史数据,更精确地说,始终只能拉取到最新插入的数据。环境:CDH 6.3.2Kafka原创 2021-01-28 15:23:22 · 1833 阅读 · 0 评论 -
Kafka源码剖析:Kafka客户端网络通信模型
文章目录0. 概述1. KafkaProducer数据发送流程1.1 宏观流程1.2 微观流程2. 元数据更新流程2.1 流程2.2 元数据变化动态感知2.2.1 强制更新2.2.2 周期更新3. Kafka客户端通信模型3.1 连接3.2 发送3.3 读写3.4 处理返回0. 概述本文旨在借助对ProduceRequest和MetadataRequest两种请求的请求链路的分析,得出kafka客户端网络模型的通用步骤。1. KafkaProducer数据发送流程1.1 宏观流程确认数据要发原创 2020-12-18 10:28:17 · 547 阅读 · 0 评论 -
Kafka源码剖析:内存池
文章目录1. Why BufferPool ?1.1 Why two kinds of pools ?2. What is a BufferPool ?3. How BufferPool run ?1. Why BufferPool ?Kafka Producer以ProducerBatch为单位发送数据,而ProducerBatch中的数据以ByteBuffer的形式进行存储。当发送端数据量极大时,ByteBuffer就会无限制地频繁申请,可能会引发OOM;另外,发送完数据后,ByteBuffer就会原创 2020-12-10 19:25:50 · 385 阅读 · 0 评论 -
Kafka问题:如何保证消息不丢失?
文章目录1.消息不丢失的含义总结来说,**Kafka 只对“已提交”的消息(committed message)做有限度的持久化保证。**这里面主要有两个意思。1.1 已提交的消息当 Kafka 的若干个 Broker 成功地接收到一条消息并写入到日志文件后,它们会告诉生产者程序这条消息已成功提交。此时,这条消息在 Kafka 看来就正式变为“已提交”消息了。那为什么是若干个 Broker 呢?这取决于你对“已提交”的定义。你可以选择只要有一个 Broker 成功保存该消息就算是已提交,也可以是令所原创 2020-10-26 21:05:49 · 726 阅读 · 0 评论 -
Kafka Connect:Debezium Connector远程调试
文章目录1. 分析启动脚本1.1 启动命令1.2 kafka-run-class2. idea配置1. 分析启动脚本1.1 启动命令# background running modecd /home/lenmom/workspace/software/confluent-community-5.1.0-2.11/ &&./bin/connect-distributed -daemon ./etc/schema-registry/connect-avro-distributed.pro原创 2020-09-23 15:16:03 · 582 阅读 · 0 评论 -
Kafka核心源码分析-生产者-Sender
Kafka核心源码分析-生产者-Sender1.简单介绍2.Sender分析2.1 请求头分析2.2 KSelector2.3 InFlightRequests2.4 MetadataUpdater2.5 NetworkClient1.简单介绍我们来了解下Sender线程发送消息的整个流程:首先,它根据RecordAccumulator的缓存情况,筛选出可以向哪些Node节点发送消息,即上一篇的介绍的RecordAccumulator.ready()方法;然后根据生产者与各个节点的连接情况(由Netwo原创 2020-05-14 12:53:34 · 441 阅读 · 0 评论 -
Kafka监控:consumer消费进度查询方案的演变
文章目录1. 背景2. 方案一:__consumer_offsets2.1 消息格式2.2 代码3. 方案二:AdminClient3.1 流程3.2 代码1. 背景大数据平台经常以Kafka作为消息中间件,且需要有完整的针对Kafka的管理和监控体系,例如实时查看:current-offset:topic在不同消费者组中的消费进度log-end-offset: topic中的可见消息总量Lag:消费延迟,lag=logEndOffset - currentOffset消费进度的保存机制在不同的原创 2020-05-10 23:37:48 · 564 阅读 · 0 评论 -
Kafka核心源码分析-生产者-RecordAccumulator
Kafka核心源码分析-生产者-RecordAccumulator1.简单介绍2.源码分析2.1 MemoryRecords2.2 RecordBatch2.3 BufferPool2.4 RecordAccumulator1.简单介绍主线程调用KafkaProducer.send()方法发送消息的时候,先将消息放到RecordAccumulator中暂存,然后主线程就可以从send()方法中返回了,此时消息并没有真正发送给Kafka,而是在RecordAccumulator中暂存,当RecordAcc原创 2020-05-09 12:40:35 · 487 阅读 · 0 评论 -
Kafka核心源码分析-生产者-KafkaProducer
KafkaProducer1.发送消息流程2.实例3.kafkaProducer分析3.1 ProducerInterceptors3.2 集群元数据3.3 Serialiser&DeseriaLizer3.4 Partitioner1.发送消息流程生产者与服务端完成一次网络通信步骤如下:生产者客户端应用程序产生消息客户端连接对象将消息包装到请求中,发送到服务端服务短...原创 2020-05-05 09:38:36 · 455 阅读 · 0 评论 -
Kafka安全认证:SASL/GSSAPI (kerberos)
文章目录kafka和zookeeper开启kerberos认证1. 环境2. 创建主体并生成keytab3. 配置jaas.conf4. 配置kafka server.properties5. 配置kafka zookeeper.properties6. kafka broker+zookeeper启动脚本7. kafka client的使用7.1 producer7.2 consumerkaf...原创 2020-05-01 16:51:57 · 6054 阅读 · 0 评论 -
Kafka安全认证:CentOS7上安装kerberos
文章目录1.kerberos概念介绍2. kerberos认证过程3. kerberos安装4. 创建 KDC 数据库5. 编辑 `kadm5.acl`6. 启动kdc和admin7. 添加principal8. 使用keytab登陆1.kerberos概念介绍principal:认证的主体,如kafka/stream.dtwave.local@EXAMPLE.COM,其中kafka是主体的用...原创 2020-05-01 16:49:28 · 1487 阅读 · 0 评论