1、Kafka 核心组件概述
Kafka 是 LinkedIn 用于日志处理的分布式消息队列,同时支持离线和在线日志处理。
Kafka 对消息保存时根据 Topic 进行归类:
发送消息者就是 Producer,消息的发布描述为 Producer
消息接受者就是 Consumer,消息的订阅描述为 Consumer
每个 Kafka 实例称为 Broker,将中间的存储阵列称作 Broker(代理)
然后三者都通过 Zookeeper 进行协调。
Kafka 的大致工作模式:
1、启动 ZooKeeper 的 server
2、启动 Kafka 的 server
3、Producer 生产数据,然后通过 ZooKeeper 找到 Broker,再将数据 push 到 Broker 保存
4、Consumer 通过 ZooKeeper 找到 Broker,然后再主动 pull 数据
2、Kafka 拓扑结构
3、Kafka 的核心概念详解
Producer : 生产 message 发送到 topic
Consumer : 订阅 topic 消费 message,consumer 作为一个线程来消费
Consumer Group:一个 Consumer Group 包含多个 consumer,这个是预先在配置文件中配置 好的
Broker:Kafka 节点,一个 Kafka 节点就是一个 broker,多个 broker 可以组成一个 Kafka 集群。
Topic:一类消息,消息存放的目录即主题,例如 page view 日志、click 日志等都可以以 topic 的形式存在,Kafka 集群能够同时负责多个 topic 的分发。
Partition:topic 物理上的分组,一个 topic 可以分为多个 partition,每个 partition 是一个有 序的队列
Segment:partition 物理上由多个 segment 组成,每个 Segment 存着 message 信息
3.1、生产者:Producer
学习 Kafka 一定要理解好 Topic,每个 Topic 被分成多个 partition(区)。每条消息在 partition 中的位置称为 offset(偏移量),类型为 long 型数字。消息即使被消费了,也不会被立即删除, 而是根据 broker 里的设置,保存一定时间后再清除,比如 log 文件设置存储两天,则两天后, 不管消息是否被消费,都清除。
3.2、Kafka 集群的存储代理:Broker
Broker 也即中间的存储队列的节点实例。我们将消息的发布者(Publisher)暂时称作 Producer,将消息的订阅者(Subscriber)表述为 Consumer,将中间的存储阵列称作 Broker(代 理)