Spark定制班第33课:Kafka内核再解密

Kafka是一款高性能的消息系统,支持百万级消息/秒的处理速度,具备无限消息存储能力,并采用分布式架构。其核心特性包括快速消息传递、强大的吞吐量、消息持久化及天然的分布式特性。通过Zookeeper管理broker,支持动态伸缩。本文介绍Kafka的基本概念、工作原理及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本期内容:
1. Kafka:最快的消息系统
2. Kafka内核内幕

Kafka第一设计原则是消息的传送速度。3台普通的server可以达到百万条消息/秒。Kafka的消息存储能力是无限的。使用了的数据是保存在consumer上。分布式的实时消息来源。由于是在前面取出数据,在后面追加数据,无需加锁,磁盘顺序查询,寻道时间很快,比随机查询快很多,据说快一万倍。 可以有任意规模的producer、broker、comsumer,可以动态增减broker。因为broker是由Zookeeper管理。
总结一下Kafka的特点:
1. 速度:舍弃功能,追求速度。
2. 最强的吞吐量:分布式。
3. 消息的持久化:
4. 被使用的数据是被consumner记录的。
5. 天然的分布式。

接下来五年,一定是Spark+Kafka演绎传奇的五年。应该聚焦于在线的交互式的个性化的大数据系统。

Kafka最小通讯单位是消息,它可以使一个图片、一个事情、或一行文本,你自己定义。
以消息方式交给broker集群。

Kafka消费中有consumer group的概念,应该会定义不同的group。不同的group会达到同时消费。
各极端的例子:划分多个group,每个consumer放到不同的group中,则每个consumer会消费同样的数据。类似于广播机制。
如果,只有一个group,所有consumer在一个group中,则数据只会被某个consumer消费一次。这是队列模式。
zookeeper管理consumer的数据结构,可以协调数据的传输。每个group可能有很多进程,它的consumer在很多机器上,但逻辑上还是一个整体单位,数据只在其中消费一次。

sendfile机制。线性写数据速度可以:> 1GB/s,
传统的持久化是放入缓存,然后刷新写入磁盘。Kafka的所有数据会立即写入文件系统的持久化日志中,即数据是先放入OS内核的页面的缓存中,再刷新写入磁盘。

十分之一的硬件投入,产出了十倍的消息吞吐能力。所有的实时数据应该放入Kafka中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值