Apache Kafka 概览
简介 Apache Kakfa 是一个分布式流处理平台,既可以当做普通的消息中间件用于消息发布订阅,也可以存储并处理流式数据,其分布式设计使得其有较好的容错性,水平拓展性等。 通常可以用于当做消息订阅发布用于业务系统中,或者用于大数据方向,接受存储大量的流式数据并和对应的大数据处理框架结合使用,eg. Kafka + Samza 从物理部署层面来讲,其主要有如下几个模块: ZooKeeper 用于元数据保存以及事件通知 Broker Kafka 的核心部分,用 scala 实现,负责处理客户端请求,持久化消息数据等 Client(Consumer & Producer) 客户端,Java 实现。生产者消费者实现 下面分别从这几个模块来讲解 Kafka 相关的实现[ 基于 Kafka 2.4 ]。 相关概念 Broker Consumer Producer Controller GroupCoordinator TransactionCoordinator Topic Partition Replicas ZooKeeper Apache ZooKeeper 在 Kafka 的作用中类似于元数据的存储以及元数据改变的的一个通知器的作用。看清楚其内部存储了哪些数据就可以知道其具体的一个作用。存储的主要数据如下 集群相关元数据 /cluster/id { "version" : 4 ,