admin 管理员组

文章数量: 1086019


2024年5月30日发(作者:oracle表连接方式)

kafka作用是什么(史上最全的kafka知识解析)

什么是Kafka

Kafka基于Scala和Java语言开发,设计中大量使用了批量处理和异步的思想,最

高可以每秒处理百万级别的消息,是用于构建实时数据管道和流的应用程序。

一文快速了解Kafka

Kafka的应用场景

Kafka是一个分布式流式处理平台。流平台具有三个关键功能:

1. 消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是Kafka被

归类为消息队列的原因。

2. 容错的持久方式存储记录消息流:Kafka会把消息持久化到磁盘,有效避免

消息丢失的风险。

3. 流式处理平台:在消息发布的时候进行处理,Kafka提供了一个完整的流式

处理类库。

Kafka主要有两大应用场景:

1. 消息队列:建立实时流数据管道,可靠地在系统或应用程序之间获取数据。

2. 数据处理:构建实时的流数据处理程序来转换或处理数据流。

一文快速了解Kafka

注: Kafka在2.8预览版中,采用Raft元数据模式,取消了对Zookeeper

的依赖。

Kafka的版本里程碑

版本

0.8

0.8.2

0.9

0.10

0.11

备注

引入了副本机制,成为了一个真正意义上完备的分布式高可靠消息队列

解决方案

新版本 Producer API,即需要指定 Broker 地址的 Producer

增加了基础的安全认证 / 权限,Java 重写了新版本消费者 API

引入了 Kafka Streams

提供幂等性 Producer API 以及事务(Transaction) API,对 Kafka 消息

格式做了重构。

1.0

2.0

Kafka Streams 的各种改进

Kafka Streams 的各种改进

Kafka的优势

高吞吐、低延时:这是 Kafka 显著的特点,Kafka 能够达到百万级的消息吞

吐量,延迟可达毫秒级。

持久化存储:Kafka 的消息最终持久化保存在磁盘之上,提供了顺序读写以

保证性能,并且通过 Kafka 的副本机制提高了数据可靠性。

分布式可扩展:Kafka的数据是分布式存储在不同broker节点的,以topic

组织数据并且按Partition进行分布式存储,整体的扩展性都非常好。

高容错性:集群中任意一个 broker 节点宕机,Kafka 仍能对外提供服务。

Kafka基本结构

Kafka具有四个核心API:

1. Producer API: 发布消息到1个或多个topic(主题)中。

2. Consumer API:来订阅一个或多个topic,并处理产生的消息。

3. Streams API:充当一个流处理器,从1个或多个topic消费输入流,并生

产一个输出流到1个或多个输出topic,有效地将输入流转换到输出流。

4. Connector API:可构建或运行可重用的生产者或消费者,将topic连接到现

有的应用程序或数据系统。例如,连接到关系数据库的连接器可以捕获表的

每个变更。

一文快速了解Kafka

Kafka的关键术语

Producer:消息和数据的生产者,向Kafka的一个Topic发布消息的进程/

代码/服务。

Consumer:消息和数据的消费者,订阅数据(Topic)并且处理发布的消息

的进程/代码/服务。

Consumer Group:对于同一个Topic,会广播给不同的Group。在一个

Group中,一条消息只能被消费组中一个的Consumer消费。

Consumer Group中不能有比Partition数量更多的消费者,否则多出的消

费者一直处于空等待,不会收到消息。

一文快速了解Kafka


本文标签: 消息 数据 处理 平台