Kafka3.0 概述

Kafka定义

传统定义:是一个分步式基于发布/订阅模式的消息队列(Message Queue),主要应用大数据实时处理领域。

发布/订阅:消息的发布者不会直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息

Kafka最 新定义 :Kafka是 一个开源的分布式事件流平台 (Event Streaming Platform),被数千家公司用于高性能数据管道流分析数据集成关键任务应用

传统消息队列的应用场景

缓冲,削峰,解耦,异步通信

缓冲/削峰

能解决生产消息和消费消息的处理速度不一致的情况下。

比如Flume采集日志 速度能达到200MB/S 而 Hadoop 上传的速度是100MB/S 生产消息的和消费消息速度不一致,这时候就需要Kafka进行 缓冲/削峰

解耦

能降低生产者和消费者之间的依赖程度

比如数据源有MySQL,有Flume等等,目的地有Hadoop,Spark,Flink等等,将MySQL和Flume比喻成厂家,目的地比喻成消费者,消费者买货不再去厂家订货,而是去零售店去买货,Kafka充当了零售店的作用。厂家将商品放入了零售点,消费者去零售店开始购物。

异步通信

允许用户将消息放入队列中,但并不立即处理它,只是在需要的时候再去处理他们。

比如打电话和发微信,打电话是一定要求对方收到信息,从而进行消息传递。

发微信只需要将想说话的话发给对方,至于对方能不能收到,就是另外一回事了,因为你的任务已经完成了,想发的消息也已经发出去了。

消息队列的两种模式

点对点模式

消费者主动拉取数据,消息收到之后清除消息

生产者会把数据一批一批发送到消息队列的内部,消费者主动拉起消费数据,消费完数据之后,会给一个应答信号,告诉队列我收到了这个数据,那么收到了数据之后,就会将这写数据删掉。

发布/订阅模式

可以有多个Topic (主题)比如,浏览,点赞收藏,评论,都可以创建不同类型的主题,方便后续订阅者进行一个订阅

每个消费者消费后不删除数据

每个消费者互相独立,都可以消费到数据

通常情况下 , 都用 发布 / 订阅模式

Kafka基础架构

(1)Producer:消息生产者,就是向 Kafka broker 发消息的客户端。

(2)Consumer:消息消费者,向 Kafka broker 取消息的客户端。

(3)Consumer Group(CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。

(4)Broker:一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topic。

(5)Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topic。

(6)Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic可以分为多个partition,每个 partition 是一个有序的队列。

(7)Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower。

(8)Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。

(9)Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

1.为方便扩展,并提高吞吐量,一个topic分为多个partition

2.配合分区的设计,提出消费者组的概念,组内每个消费者并行消费

3.为提高可用性,为每个partition增加若干副本,类似NameNode HA

4.ZK中记录谁是leader,Kafka2.8.0以后也可以配置不采用ZK

注意:某一个分区中,数据只能由一个消费者进行消费,如果两个消费者消费同一数据在这里,不知道谁消费哪一条了,数据容易混乱.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值