kafka用于构建实时数据管道和流程序。它具有横向伸缩性、容错性、快速性,并在数千家公司中运行。
如图所示:
1.介绍
kafka是一个分布式流平台,确切的意思是什么?
我们认为一个流平台要有三个关键能力:
1.它允许发布和订阅记录流。在这方面,它类似于消息队列或企业消息系统。
2.它允许你以容错的方式存储记录流.
3.它允许你处理记录发生时的流。
kafka的优势是什么?
它广泛用于两大类应用程序:
1.构建实时流数据管道,在系统或应用程序之间可靠地获取数据。
2.构建对数据流进行转换或响应的实时流应用程序.
为了理解卡夫卡是如何做到这些的,让我们深入探究卡夫卡的自下而上的能力。
- kafak是运行在一台或多台服务器上的集群。
- 在类别称为主题的记录kafka集群存储流。
- 没条记录包含一个关键字、值、和时间戳。
kafka 有4个核心的api:
- 生产者api:允许应用发布记录流到一个或多个主题。
- 消费者api:允许应用程序订阅一个或多个主题和处理生产记录流。
- 流API:允许应用程序充当流处理器,消耗来自一个或多个主题的输入流,并向一个或多个输出主题生成输出流,有效地将输入流转换为输出流。
- 连接器API:允许构建和运行可重用的生产者或消费者,它们将卡夫卡主题连接到现有应用程序或数据系统。例如,一个连接到一个关系数据库可能会捕捉每一个变化表。
关系如图:
在kafka中,客户机和服务器之间的通信是通过一个简单的、高性能的、与语言无关的tcp协议完成的。该协议是版本控制的并保持与旧版本的向后兼容性。我们提供kafka java客户端,但客户端支持多种语言。