![](https://img-blog.csdnimg.cn/20200421171139465.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Kafka
文章平均质量分 88
kafka 的基础使用、高级优化以及源码阅读
KK架构
天道酬勤
展开
-
深入理解 Kafka 的 offset、 leo、hw、epoch 概念
Kafka 作为一个分布式的消息中间件,在高性能、高并发、高可用上有杰出的表现,在数据一致性上更是做出了诸多努力原创 2023-02-28 13:32:29 · 2057 阅读 · 1 评论 -
Kafka 为什么这么快,性能如此优良
同时利用了 mmap,mmap其实就是把物理上的磁盘文件的一些地址和page cache地址进行一层映射,使得进程像读写硬盘一样读写内存,定时有os帮助我们将数据刷写到磁盘。.indedx 文件产生的规则是,每当 .log 文件中写入了 4kb 的消息,则会在 .index 文件中新增一条记录,.index 里面是一种稀疏的索引。假设没有索引文件的情况下,需要从 .log 文件的第一行开始依次往下一次遍历查找,性能比较低。kafka 对硬盘的写入的模式是顺序写,而不是随机 I/O。原创 2022-11-03 22:12:46 · 1124 阅读 · 0 评论 -
Kafka的 ISR 概念和作用
ISR 的全称叫做: In-Sync Replicas (同步副本集), 我们可以理解为和 leader 保持同步的所有副本的集合。一个分区的所有副本集合叫做 AR( Assigned Repllicas )与 leader-replica 未能保持同步的副本集叫做 OSR( Out-Sync Relipcas )因此我们就能得到这么一个表示:AR = ISR + OSR,翻译一下就是一个分区的副本集分为同步集合和非同步集合两部分。那么我们可以假设一个场景,一个分区的 AR 集合为【0,1,2原创 2022-09-20 16:35:52 · 2452 阅读 · 0 评论 -
Kafka Producer 内存池设计源码赏析
一、开篇引出一个 Full Gc 的问题在上一篇文章中,我们讲到了 Kafka 发送消息的八个流程,并且着重讲了 Kafka 封装了一个内存结构,把每个分区的消息封装成批次,缓存到内存里。如下图所示:上图中,整体是一个 Map 结构,Map 的 key 是分区,Map 的值是一个队列;队列里有一个个的小批次,里面是很多消息。这样好处就是可以一次性的把消息发送出去,不至于来一条发送一条,浪费网络资源。但由此也带来了问题,生产者端消息这么多,一个批次发送完了就不管了去等待 JVM 的垃圾回收的时候,原创 2021-06-03 21:38:48 · 558 阅读 · 1 评论 -
Kafka Producer 源码赏析,尤其是分段加锁、写时复制
本文大纲一、开篇之前我们已经大致阅读完了大数据存储领域的一个著名框架:HDFS。今天我们开始一个大数据存储领域一个全新的框架:Kafka。做大数据不可能不知道 Kafka,在日志采集、实时计算等领域,都有它的身影。而且 Kafka 的源码是众多开源项目中,代码质量比较高的一个,代码比较有观赏性。Kafka 的高可用和高性能,是各大公司偏爱它的一个非常重要的理由,要做到如此高性能,背后的作者肯定是花费了一番心力的,必须任何一个细节都要有所优化和改进。而本次,我们来聊一下 Kafka Produc原创 2021-06-03 21:37:11 · 685 阅读 · 0 评论 -
从 Kafka设计中学到的东西
kafka在设计之初需要考虑下面四个问题:(1)吞吐量和延时(2)消息持久化(3)负载均衡和故障转移(4)伸缩性吞吐量是某种处理能力的最大值,对于kafka而言,吞吐量就是每秒能够处理的消息数或者每秒能够处理的字节数延时,对于kafka而言,就是客户端发起请求的时间与服务器处理请求并响应客户端的时间kafka如何做到高吞吐、低延时的kafka会持久化所有数据到磁盘,但本质上每次写入...原创 2020-04-23 17:34:55 · 137 阅读 · 0 评论 -
如何给 Kafka 新增分区
数据量猛增的时候,需要给 kafka 的 topic 新增分区,增大处理的数据量,可以通过以下步骤1、修改 topic 的分区kafka-topics --zookeeper hadoop004:2181 --alter --topic flink-test-04 --partitions 32、迁移数据生成迁移计划,手动新建一个 json 文件{"topics": [{"topic...原创 2020-04-23 17:31:19 · 9373 阅读 · 0 评论 -
Kafka 为什么性能这么好
一、架构层面1、利用partition可以实现并行处理一个topic的不同partition 不仅可以分配到不同的节点上,而且在同一节点上还可以置于不同的磁盘上。2、 ISR 实现 CAP 中可用性于数据一致性的动态平衡每个 Topic 的每个 Partition 都会有一个 Leader,和 Follower。客户端其实是和这个Leader请求数据的。ISR,In-sync-Repli...原创 2020-04-23 17:28:54 · 896 阅读 · 0 评论 -
Kafka 的日常基本操作命令汇总
集群环境是 CDH 环境 5.15.0broker 有三台192.168.17.26192.168.17.27192.168.17.28zk 有三台192.168.17.21192.168.17.22192.168.17.23生产者shellkafka-console-producer --broker-list 192.168.17.26:9092,192.168.17...原创 2020-04-23 17:26:00 · 377 阅读 · 0 评论 -
集群外的机器无法访问 kafka
一、问题在线下集群搭建好大数据集群环境之后,同一局域网内的其他机器(非集群机器),想往 kafka 集群写数据,发现无法写入,broker配置为:192.168.17.41:9092,192.168.17.42:9092,192.168.17.43:9092。kafka 版本为:0.10.2报错如下二、解决在集群上修改 advertised.host.name 参...原创 2020-03-18 17:37:57 · 566 阅读 · 0 评论