Apache Kafka 是什么

2020-12-19  本文已影响0人  向梦而来

Kafka 是基于发布与订阅的消息系统。Kafka 是一个分布式的,可分区的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。

Kafka 的主要特点

Kafka 的设计要点

1.吞吐量:

数据在磁盘上存取代价为 O(1):Kafka以 Topic 来进行消息管理,每个 Topic 包含多个Partition
,每个 Partition 对应一个逻辑 log ,有多个 segment 文件组成。每个 segment 中存储多条消
息,消息 id 由其逻辑位置决定,即从消息 id 可直接定位到消息的存储位置,避免 id 到位置的
额外映射。每个 Partition 在内存中对应一个 index ,记录每个 segment 中的第一条消息移。

发布者发到某个 Topic 的消息会被均匀的分布到多个 Partition 上(随机或根据用户指定的回调
函数进行分布),Broker 收到发布消息往对应 Partition 的最后一个 segment 上添加该消息。
 当某个 segment上 的消息条数达到配置值或消息发布时间超过阈值时,segment上 的消息会
被 flush 到磁盘,只有 flush 到磁盘上的消息订阅者才能订阅到,segment 达到一定的大小后
将不会再往该 segment 写数据,Broker 会创建新的 segment 文件。

2.负载均衡

3.拉取系统
由于 Kafka Broker 会持久化数据,Broker 没有内存压力,因此, Consumer 非常适合采取 pull 的方式消费数据,具有以下几点好处:

4.可扩展性:通过 Zookeeper 管理 Broker 与 Consumer 的动态加入与离开。

上一篇 下一篇

猜你喜欢

热点阅读