您的位置:首页 > 其它

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

2016-06-28 18:38 246 查看
本期内容:
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中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: