Kafka概述
1.介绍
Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message
Queue),主要应用于大数据实时处理领域。
发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息
分为不同的类别,订阅者只接收感兴趣的消息。
Kafka 最 新 定 义 : Kafka 是 一 个 开 源 的 分 布 式 事 件 流 平 台 ( Event Streaming
Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。
2.应用场景
缓冲/消峰
缓冲/消峰:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。

解耦
解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

异步通信
异步通信:允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。

3.消费模式

4.概念解释
- Producer 消息的生成者
- Consumer 消息的消费者
- ConsumerGroup 消费者组,可以并行消费Topic中的partition的消息
- Broker 缓存代理,Kafka集群中的一台或多台服务器统称broker.
- Topic Kafka处理资源的消息源(feeds of messages)的不同分类
- Partition Topic物理上的分组,一个topic可以分为多个partion,每个partion是一个有序的队列。partion中每条消息都会被分 配一个 有序的Id(offset)
- Message 消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息
- Producers 消息和数据生成者,向Kafka的一个topic发布消息的 过程叫做producers
- Consumers 消息和数据的消费者,订阅topic并处理其发布的消费过程叫做consumers
4.1Producers的概念
消息和数据生成者,向Kafka的一个topic发布消息的过程叫做producers
Producer将消息发布到指定的Topic中,同时Producer也能决定将此消息归属于哪个partition;比如基于round-robin方式 或者通过其他的一些算法等;
异步发送批量发送可以很有效的提高发送效率。kafka producer的异步发送模式允许进行批量发送,先将消息缓存到内存中,然后一次请求批量发送出去。
4.2 broker的概念
Broker没有副本机制,一旦broker宕机,该broker的消息将都不可用。
Broker不保存订阅者的状态,由订阅者自己保存。
无状态导致消息的删除成为难题(可能删除的消息正在被订阅),Kafka采用基于时间的SLA(服务保证),消息保存一定时间(通常7天)后会删除。
消费订阅者可以rewind back到任意位置重新进行消费,当订阅者故障时,可以选择最小的offset(id)进行重新读取消费消息
4.3 Message组成
Message消息:是通信的基本单位,每个producer可以向一个topic发布消息。
Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的,每个topic又可以分成不同的partition每个partition储存一部分
partion中的每条Message包含以下三个属性:
offset long
MessageSize int32
data messages的具体内容
4.4 Consumers的概念
消息和数据消费者,订阅topic并处理其发布的消息的过程叫做consumers.
在kafka中,我们可以认为一个group是一个“订阅者”,一个topic中的每个partions只会被一个“订阅者”中的一个consumer 消费,
不过一个consumer可以消费多个partitions中的消息 注: Kafka的设计原理决定,
对于一个topic,同一个group不能多于partition个数的consumer同时消费,否则将意味着某些 consumer无法得到消息

浙公网安备 33010602011771号