kafka 简介

2020-03-30  本文已影响0人  本能帅

1.kafka 集群的架构

Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。

image-20200129105443274

1.broker: 服务器集群的节点

2.topic : 专题

3.partition分区: 把一个 topic 分成不同的分区,提高负载,表现形式就是文件夹

1.leader:分区主节点(老大)

2.follower: 分区的从节点(小弟)

4.Consumer Group

2.生产者往 kafka发送数据的流程(6 步)

image-20200129105705147

1、producer 从 kafka 集群获取信息,知道谁是 leader

2、procucer 向 leader 发送数据

3、leader 存储数据

4、leader 往 follwer 发送数据

5、follwer 告诉 leader 自己存储完毕

6、leader 告诉 producer 自己存储完毕

3.kafka 选择分区模式

1.指定往哪个分区写

2.指定 key,kafka 根据 key 做 hash 然后决定写哪个分区

3.轮询方式

4.生产者往 kafka 发送数据模式(3 种)

1.0:把数据发给 leader 就成功,不等回复,效率最高,安全性最低

2.1:把数据发送给 leader,等待 leader 回复 ACK

3.all:把数据发送给 leader,确保 follower 从 leader 拉取到数据并回复 ACK 给 leader,leader 再回复 ACK;安全性最高

5.kafka为什么快

image-20200129112412411

每个 partition 都是一个有序并且不可变的消息记录集合。当有新的数据写入时,就被追加到 partition 的末尾。在每个 partition 中,每条消息都会被分配一个顺序的 唯一标识,这个标识称为 offset,即偏移量。注意,kafka 只保证在同一个partition 内部消息是有序的,在不同 partition 之间,并不保证消息有序。

6.消费者组消费数据

image-20200129113044659
上一篇下一篇

猜你喜欢

热点阅读