Kafka基础知识汇总

Kafka是一个实时数据管道和流处理平台,以其高可伸缩性、容错性和快速处理速度著称。核心特性包括发布订阅、持久化记录流、顺序处理。Kafka提供了Producer、Consumer、Streams API和Connector API。主要应用包括消息传递、网站活动跟踪、日志聚合、流处理等。Kafka集群将记录存储在topic的partition中,每个record由键、值和时间戳组成。Kafka支持多数据中心的Geo-Replication,并提供强顺序保证。

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

Kafka简介

Kafka用于构建实时数据管道和流应用程序。 它的特点是水平可伸缩性scalable,容错性,快速性,kafka在数千家公司中投入生产环境使用。比较知名的有Uber,netflix等等,都是利用kafka构建了其业务。

kafka有三个关键特性:

  1. 发布和订阅stream of records,类似于message queue和enterprise messaging system。
  2. 以可容错且持久的方式存储record stream。
  3. 按照流的顺序处理流。

Kafka通常用于两大类应用程序:

  1. 建立实时流数据管道,让我们可以可靠地在系统或应用程序之间获取数据
  2. 构建实时流应用程序,让我们可以转换或响应流中的数据

kafka的特点是

  1. Kafka在一个或多个可以跨越多个数据中心data center的服务器上作为集群运行。
  2. Kafka集群将stream of record存储在kafka topics中。
  3. 每个record由一个键key,一个值value和一个时间戳timestamp组成。

kafka提供了下面这些核心的API

  1. Producer API允许应用程序将记录流发布到一个或多个Kafka的topic当中。
  2. Consumer API允许应用程序订阅一个或多个topic并处理为其生成的记录流。
  3. Streams API允许应用程序充当流处理器,使用一个或多个topic的输入流,并生成一个或多个输出topic的输出流,从而有效地将输入流转换为输出流。
  4. Connector API允许构建和运行将Kafka topic连接到现有应用程序或数据系统的producer或consumer。 例如,关系数据库的connector 可以捕获对表的所有更改。

在Kafka中,客户端和服务器之间的通信是通过简单,高性能,与语言无关的TCP协议完成的。 该协议已版本化,并与旧版本保持向后兼容性。 我们为Kafka提供了Java客户端,但是客户端支持多种语言。

Topic 和log

首先,让我们深入探讨Kafka提供的流记录的核心抽象-topic。

topic是record发布到的一个抽象。 Kafka中的topic始终是支持多个subscriber的; 也就是说,一个topic可以有零个,一个或多个消consumer来subscribe写入该topic的数据。这一点与rabbitmq有本质区别,因为rabbitmq可以定义只能被consume一次的topic。

对于每个topic,Kafka集群都会维护一个分区日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值