作者:禅与计算机程序设计艺术
1.简介
Kafka是一个开源分布式发布-订阅消息系统,它被设计用来实现一个分布式流处理平台,可在廉价硬件上部署并提供高吞吐量。其由Scala开发而成,是一个基于Java开发的高性能、可伸缩、可靠、多用途的分布式系统。 Apache Kafka项目最初被设计来作为LinkedIn的实时数据管道。后来,该项目被捐献给Apache基金会管理并开源,目前在国内外有很多公司使用。 本文将带领读者一起学习Kafka的内部工作机制,阅读Kafka的代码实现,通过实例的方式掌握Kafka的用法技巧。
2.基本概念术语说明
消息模型
Kafka是一个分布式的发布/订阅消息系统,由生产者、消费者、主题、分区和偏移量等组成。
生产者(Producer)
生产者是向Kafka集群中写入数据的客户端。生产者可以发送消息到主题中的特定分区或者选择不指定分区的任意分区。
消费者(Consumer)
消费者是从Kafka集群中读取数据的客户端。消费者可以订阅一个或多个主题,并根据指定的Offset、数量、超时时间等参数从Kafka服务器拉取消息。
主题(Topic)
主题是消息的分类标签,生产者和消费者都要指定一个主题才能进行交互。每个主题由一个或多个分区组成,生产者和消费者通过主题名称来标识自己所关心的消息。