kafka入门基础
Kafka®用于构建实时数据管道和流应用程序。它具有水平可扩展性,容错性,快速性,并在数千家公司的生产中运行。
Kafka 中的术语
broker:中间的kafka cluster,存储消息,是由多个server组成的集群。
topic:kafka给消息提供的分类方式。broker用来存储不同topic的消息数据。
producer:往broker中某个topic里面生产数据。
consumer:从broker中某个topic获取数据。
Apache的Kafka™是一个分布式流平台(a distributed streaming platform)。
一个流处理平台应该具有三个关键能力:
它可以让你发布和订阅记录流。在这方面,它类似于一个消息队列或企业消息系统。
它可以让你持久化收到的记录流,从而具有容错能力。
它可以让你处理收到的记录流。
Kafka擅长哪些方面?
它被用于两大类应用:
建立实时流数据管道从而能够可靠地在系统或应用程序之间的共享数据
构建实时流应用程序,能够变换或者对数据
进行相应的处理。
了解Kafka如何具有这些能力,首先,明确几个概念:
Kafka是运行在一个或多个服务器的集群(Cluster)上的。
Kafka集群分类存储的记录流被称为主题(Topics)。
每个消息记录包含一个键,一个值和时间戳。
Kafka有四个核心API:
生产者 API 允许应用程序发布记录流至一个或多个Kafka的话题(Topics)。
消费者API允许应用程序订阅一个或多个主题,并处理这些主题接收到的记录流。
Streams API允许应用程序充当流处理器(stream processor),从一个或多个主题获取输入流,并生产一个输出流至一个或多个的主题,能够有效地变换输入流为输出流。
Connector API允许构建和运行可重用的生产者或消费者,能够把 Kafka主题连接到现有的应用程序或数据系统。例如,一个连接到关系数据库的连接器(connector)可能会获取每个表的变化。