作者:禅与计算机程序设计艺术
1.简介
Kafka是一个开源分布式消息系统,最初由LinkedIn开发,之后成为Apache项目的一部分。Kafka主要用于大数据实时流处理,具有低延迟、高吞吐量等特点。本文将会从基本概念、术语说明、原理及应用场景三个方面对Kafka进行详细介绍。
Kafka作为一个分布式系统,需要配合Zookeeper实现主备、容错等功能。因此在实际中部署Kafka集群至少需要2台服务器,其中一台为zookeeper服务器。同时,Kafka集群中的每个broker节点都可以配置多个topic(主题),每个topic下可以包含多个分区(Partition)。每个分区中存储着Kafka消息,消息以日志的形式存放,日志按顺序追加到分区中。通过一个主题的订阅者列表,消费者可以消费该主题下的所有消息。当消费者消费了某个分区的所有消息后,Kafka则会把该分区的所有消息都删除并释放空间。本文所涉及到的Kafka版本为0.11.0.0。本篇文章基于Spring Boot+Kafka实战。
2.基本概念、术语说明
2.1 Kafka概念
- Broker
broker是Kafka集群中的一个服务进程,它负责维护消费者与发布者所需的Topic分区副本。Broker运行在集群中的每台机器上。集群中的每个broker都会响应客户端发送的请求,向客户提供服务。
每个broker都会在本地磁盘上维护一个可配置大小的日志目录,并且对于每个被选举为controller的broker都有一个唯一标识符。每个broker还会缓存元数据信息,包括当前broker上可用的Topic列表、分区情况、消费者偏移量、isr状态等。
2. Topic
版权归原作者 禅与计算机程序设计艺术 所有, 如有侵权,请联系我们删除。