Kafka 01 - Kafka概述

Kafka概述


在这里插入图片描述

一:Kafka的定义

在这里插入图片描述

Kafka传统定义

Kafka是一个分布式的基于发布订阅模式的消息队列(Message Queue),主要应用于大数据实时处理的领域

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

Kafka的最新定义

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

二:消息队列

目前企业中比较常见的消息队列产品主要有 Kafka、ActiveMQ、RabbitMQ、RocketMQ等

在大数据场景主要采用 Kafka 作为消息队列。在 JavaEE 开发中主要采用 ActiveMQ、RabbitMQ、RocketMQ

1:传统消息队列的应用场景

1.1:缓冲、削峰

在这里插入图片描述

1.2:解耦

在这里插入图片描述

1.3:异步通信

在这里插入图片描述

2:消息队列的两种模式

2.1:点对点模式

在这里插入图片描述

2.2:发布订阅模式

在这里插入图片描述

三:Kafka架构

  1. 为了方便进行扩展,一个topic分成为多个partition分区
  2. 配合分区的设计,提出消费者的概念,每组内的每一个消费者进行并行消费
  3. 为了提高可用性,为每一个分区增加了若干个副本
  4. ZooKeeper中记录了谁输leader,Kafka2.8.0以后可以配置不采用ZK
    在这里插入图片描述

1:生产者 producer

消息生产者,就是向Kafka broker发消息的客户端
在这里插入图片描述

2:消费者 consumer

消息消费者,向Kafka broker取消息的客户端

在这里插入图片描述

3:消费者组consumer group

消费者组,由多个consumer组成。

消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。

所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者

4:服务器broker

一台Kafka服务器就是一个broker

一个集群由多个broker组成。一个broker可以容纳多个topic

5:主题Topic

可以理解为一个队列,生产者和消费者面向的都是一个topic。
在这里插入图片描述

6:分区Partition

为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上

一个topic可以分为多个partition,每个partition是一个有序的队列

一个topic的每个分区partition都有若干个副本replica,一个Leader和若干个Follower。

  • Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是Leader
  • Follower:每个分区多个副本中的“从”,实时从Leader中同步数据,保持和Leader数据的同步。Leader发生故障时,某个Follower会成为新的Leader。
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值