Kafka
文章平均质量分 89
香山上的麻雀1008
大数据
展开
-
Apahe Pulsar 从入门到精通 整理
本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com导语新年快乐!大年初三,Apahe Pulsar 社区给您拜年啦!特此奉上年货礼包????一份。Hi 小伙伴们,感谢你加入 Apache Pulsar 社区——一个快速成长的消息流技术社区。作为 「云原生时代消息中间件之王」的 Apache Pulsar ,是 Apache 软件基金会顶级项目,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致转载 2021-02-18 14:39:00 · 1473 阅读 · 1 评论 -
Kafka session.timeout.ms 与 heartbeat.interval.ms参数的区别
注:本文是从https://www.cnblogs.com/hapjin/p/10926882.html处摘抄,可直接跳转至原页面。从kafka官网截取最近碰到一个问题,多个业务往向一个Kafka topic发送消息,有些业务的消费量很大,有些业务的消息量很小。因Kafka尚未较好地支持按优先级来消费消息,导致某些业务的消息消费延时的问题。一种简单的解决方案是再增加几个Topic,...原创 2020-08-25 20:25:56 · 2315 阅读 · 0 评论 -
源码解读执行创建topic命令后kafka内部是怎么样的流程
kafka执行topic命令实际上执行的是:exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@"然后我们来看kafka.admin.TopicCommand:main方法入口: def main(args: Array[String]): Unit = { // 解析参数 val opts = new TopicCommandOptions(args) opts.checkArgs() va原创 2021-01-23 18:05:36 · 409 阅读 · 0 评论 -
Kafka日志存储解析(二)日志索引
每个日志分段文件对应了两个索引文件,主要用来提高查找消息的效率。如上图偏移量索引文件用来建立offset到物理地址之间的映射关系,方便快速定位消息所在的物理文件的位置。时间戳索引文件则根据指定的时间戳来查找对应的偏移量信息。Kafka中的索引文件属于稀疏索引,不是所有的消息都有对应的索引项。每当写入一定量(由broker端参数log.index.interval.bytes指定,默认是4KB)的消息时,偏移量索引文件和时间戳索引文件分别增加一个偏移量索引项和时间戳索引项。索引文件会被映射到原创 2020-12-08 14:18:33 · 518 阅读 · 0 评论 -
Kafka日志存储解析(一)
注:本文是《深入理解Kafka:核心设计与实践原理》的读书笔记Kafka中的消息是以Topic为单位管理的,每个Topic又可以分为若干个分区,消息在被发送后悔根据分区规则被追加到特定的分区,每条消息都会有一个唯一的“编号”,也就是我们常说的offset。Kafka消息日志(Log)是以分区为单位存储在磁盘中,为了便于管理和存储,这些日志数据被切分为若干个LogSegment来进行存储,而每个LogSegment 实际上对应于磁盘上的一个日志文件和两个索引文件,以及可能的其他文件(比如以.txninde原创 2020-12-05 18:02:47 · 758 阅读 · 0 评论 -
深入理解kafka服务端控制器
Kafka的控制器kafka集群中有1个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本。当检测到某个分区的ISR集合发生变化时,由控制器负责通知所有的broker更新其元数据信息。当某个topic分区数量增加时,也是由控制器负责分区的重新分配。控制器的选举及异常恢复Kafka的控制器选举工作依赖于Zookeeper原创 2020-11-12 11:45:59 · 365 阅读 · 0 评论 -
kafka中对时间轮的应用分析
kafka中存在着大量的延时操作,比如延迟生产,延迟拉取,延迟删除等,这些延时操作并不是基于JDK 自带的Timer或者DelayQueue 实现,而是基于时间轮的概念自己实现了一个延时定时器,JDK中Timer和DelayQueue的插入和删除操作的平均时间复杂度为O(nlogn)并不能满足Kafka的高性能要求,而基于时间轮可以将插入和删除操作的时间复杂度都降为 O(1)。‘’kafka中的时间轮是一个存储定时任务的环形队列,底层采用数组实现,数组中的每个元素可以存放一个定时任务列表(TimerTa原创 2020-11-09 21:53:59 · 754 阅读 · 0 评论 -
kafka技术内幕学习笔记(二)
下面代码来自kafka源码包里的examples包/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF l原创 2020-06-29 08:29:50 · 437 阅读 · 0 评论 -
kafka技术内幕学习笔记(一)
在0 . 10版本之前, Kafka仅仅作为一个消息系统,主要用来解决应用解祸 、 异步消息 、 流量削峰等问题。 不过在0 .10版本之后, Kafka提供了连接器与流处理的能力,它也从分布式的消息系统逐渐成为一个流式的数据平台 。1.1 流式数据平台特点:消息系统:队列(点对点)和发布订阅存储数据:保证数据的可靠性流处理:流的聚合,连接,转换操作等核心组件:生产者:Producer消费者:Consumer连接器:Connector处理器:Processor1.2 基本概念原创 2020-06-20 14:52:39 · 420 阅读 · 0 评论 -
Fetcher: KafkaConsumer消息消费的管理者
我们在客户端使用KafkaConsumer类进行Kafka消息的消费,其实KafkaConsumer是将创建消费请求、接收响应的操作全部交给了Fetcher去处理。我们从KafkaConsumer.poll()方法进入,解析Fetcher的工作流程。 在我们看具体...转载 2019-09-18 17:45:52 · 405 阅读 · 1 评论 -
解决kafka集群由于默认的__consumer_offsets这个topic的默认的副本数为1而存在的单点故障问题
抛出问题:__consumer_offsets这个topic是由kafka自动创建的,默认50个,但是都存在一台kafka服务器上,这是不是就存在很明显的单点故障? 经测试,如果将存储__consumer_offsets的这台机器kill掉,所有的消费者都停止消费了。请问这个问题是怎么解决的呢?原因分析:由于__consumer_offsets这个用于存储offset的分区是由kafka服务...原创 2019-09-12 15:44:50 · 2100 阅读 · 0 评论 -
kafka消费不到数据排查记录
集群上新安装并启动了3个kafka Broker,代码打包上传至集群,运行后发现一直消费不到数据,本地idea中debug后发现,程序一直阻塞在如下程序中,陷入了死循环。 /** * Block until the coordinator for this group is known and is ready to receive requests. * 等待直到我们和...原创 2019-09-12 15:01:22 · 12826 阅读 · 6 评论 -
Kafka消费者从Kafka中读取数据
本系列文章为对《Kafka:The Definitive Guide》的学习整理,希望能够帮助到大家应用从Kafka中读...原创 2019-08-12 14:12:06 · 2586 阅读 · 0 评论 -
Kafka总结大全
KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎...原创 2019-04-23 15:52:18 · 304 阅读 · 0 评论 -
SparkStreaming与Kafka的整合(基础)
Kafka作为SparkStreaming的数据源1、用法以及说明在工作中需要引入Maven工件以及Spark-streaming-Kafka-0-8_2.11来使用,包内提供的 KafkaUtils对象可以在StreamingContext和JavaStreamingContext中以你的Kafka消息创建出 DStream。两个核心类,KafkaUtils以及KafkaCluster2...原创 2019-03-17 15:14:31 · 484 阅读 · 0 评论 -
如何确定Kafka的分区数、key和consumer线程数
在Kafak中国社区的qq群中,这个问题被提及的比例是相当高的,这也是Kafka用户最常碰到的问题之一。本文结合Kafka源码试图对该问题相关的因素进行探讨。希望对大家有所帮助。 怎么确定分区数?    “我应该选择几个分区?”——如果你在Kafka中国社区的群里,这样的问题你会经常碰到的。不过有些遗憾的是,我们似乎并没有很权威的答案能够解答这样的问题。其实这也...转载 2019-03-14 17:20:55 · 388 阅读 · 0 评论 -
Kafka水位(high watermark)与leader epoch的讨论
本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的。简单来说,0.11之前副本备份机制主要依赖水位(或水印)的概念,而0.11采用了leader epoch来标识备份进度。后面我们会详细讨论两种机制的差异。不过首先先做一些基本的名词含义解析。水位或水印(watermark)一词,也可称为高水位(high watermark),通常被用在流式处理领域(比如...原创 2019-03-09 16:18:55 · 1774 阅读 · 0 评论
分享