
Kafka
Kafka
LittleMagics
Flinker @ JD.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
稀疏索引与其在Kafka、ClickHouse中的应用
Sparse Index在以数据库为代表的存储系统中,索引(index)是一种附加于原始数据之上的数据结构,能够通过减少磁盘访问来提升查询速度,与现实中的书籍目录异曲同工。索引通常包含两部分,即索引键(≈章节)与指向原始数据的指针(≈页码),如下图所示。https://www.geeksforgeeks.org/indexing-in-databases-set-1/索引的组织形...原创 2020-07-08 23:27:58 · 1865 阅读 · 1 评论 -
浅谈Kafka Controller(控制器)的相关知识
前言Kafka作为一个高效的分布式消息系统,在多处关键点都采用了主从(或者说Leader-Follower)的设计思路,例如:Broker主从设计,主节点称为Controller;Partition Replica主从设计,处理客户端请求的主要Replica称为Partition Leader;Consumer Group Rebalance过程中的Consumer主从设...原创 2020-04-23 21:57:16 · 706 阅读 · 1 评论 -
浅谈Kafka Broker的硬件配置选型
前言笔者之前写了一篇关于建设实时数仓的初步方案(参见这里),经过研讨与部分修改之后已经开始施工。在我们设计的实时数仓体系中,Kafka占有核心地位,ODS层的原始数据与DW层的事实/明细数据都需要用它来存储,故我们需要搭建专用的Kafka集群。工欲善其事,必先利其器,本文简单讨论一下该如何为Kafka Broker服务器选择合适的硬件(虽然这并不是笔者的主业)。C...原创 2020-04-07 22:49:23 · 4247 阅读 · 1 评论 -
Kafka幂等性实现简析
前言昨天写的关于compaction的长文连续被简书误炸,只能发邮件申诉。暂时不管它了,move on。在《两阶段提交(2PC)与其在Flink exactly once中的应用》这篇文章中,特别提到了Kafka从0.11版本开始支持幂等性与事务性,使得端到端exactly once语义成为可能。幂等性与事务性都是Kafka发展过程中非常重要的feature,本文将幂等性拎出来...原创 2020-01-05 23:14:34 · 1869 阅读 · 1 评论 -
浅谈ZooKeeper中Kafka相关信息的存储
ZooKeeper是应用甚为广泛的分布式服务协调组件,它对于大数据领域的其他组件,如HDFS、YARN、HBase、Kafka等等,都扮演着基础角色。本文简单描述一下ZK如何存储与Kafka相关的信息。在kafka.utils.ZkUtils对象的开头,预先定义了很多ZK路径,列举如下。 val AdminPath = "/admin" val BrokersPath =...原创 2019-11-20 22:48:33 · 646 阅读 · 0 评论 -
聊聊page cache与Kafka之间的事儿
前言关于Kafka的一个灵魂拷问:它为什么这么快?或者说,为什么它能做到如此大的吞吐量和如此低的延迟?有很多文章已经对这个问题给出了回答,但本文只重点研究其中的一个方向,即对page cache的使用。先简单地认识一下Linux系统中的page cache(顺便也认识一下buffer cache)。page cache & buffer cache执行free命令...原创 2019-08-04 23:34:12 · 421 阅读 · 0 评论 -
Kafka+Spark Streaming如何保证exactly once语义
在Kafka、Storm、Flink、Spark Streaming等分布式流处理系统中(没错,Kafka本质上是流处理系统,不是单纯的“消息队列”),存在三种消息传递语义(message delivery semantics),分别是:at least once:每条消息会被收到1次或多次。例如发送方S在超时时间内没有收到接收方R的通知(如ack),或者收到了R的报错,就会...原创 2019-03-03 22:59:58 · 403 阅读 · 0 评论 -
Kafka+Spark Streaming管理offset的两种方法
Kafka配合Spark Streaming是大数据领域常见的黄金搭档之一,主要是用于数据实时入库或分析。为了应对可能出现的引起Streaming程序崩溃的异常情况,我们一般都需要手动管理好Kafka的offset,而不是让它自动提交,即需要将enable.auto.commit设为false。只有管理好offset,才能使整个流式系统最大限度地接近exactly once语义。...原创 2019-02-13 22:25:12 · 812 阅读 · 0 评论