kafka是一种高吞吐量的分布式发布订阅消息系统,它能够处理消费者规模的网站中全部动做流数据。这种动做(网页浏览、搜索和其余用户的行动)是现代网络上的许多社会功能的一个关键因素。这些数据一般是因为吞吐量的要求而经过处理日志和日志聚合来解决。
kafka名词解释
producer:生产者
consumer:消费者
topic: 消息以topic为类别记录,Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic)
broker:以集群的方式运行,能够由一个或多个服务组成,每一个服务叫作一个broker;消费者能够订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息
kafka有四个核心API介绍
应用程序使用producer API发布消息到1个或多个topic中
应用程序使用consumer API来订阅一个或多个topic,并处理产生的消息
应用程序使用streams API充当一个流处理器,从1个或多个topic消费输入流,并产生一个输出流到1个或多个topic,有效地将输入流转换到输出流
connector API容许构建或运行可重复使用的生产者或消费者,将topic连接到现有的应用程序或数据系统服务器
kafka基本原理
一般来说,消息模型能够分为两种:队列和发布-订阅式。队列的处理方式是一组消费者从服务器读取消息,一条消息只有其中的一个消费者来处理。在发布-订阅模型中,消息被广播给全部的消费者,接收到消息的消费者均可以处理此消息。Kafka为这两种模型提供了单一的消费者抽象模型: 消费者组(consumer group)。消费者用一个消费者组名标记本身。一个发布在Topic上消息被分发给此消费者组中的一个消费者。假如全部的消费者都在一个组中,那么这就变成了队列模型。假如全部的消费者都在不一样的组中,那么就彻底变成了发布-订阅模型。更通用的, 咱们能够建立一些消费者组做为逻辑上的订阅者。每一个组包含数目不等的消费者,一个组内多个消费者能够用来扩展性能和容错。网络