kafka概述

news/2024/12/22 15:19:15/

文章目录

  • 1.kafka定义
  • 2.消息队列
    • 2.1 传统消息队列的应用场景
    • 2.2 消息队列的两种模式
  • 3.Kafka 基础架构

1.kafka定义

在这里插入图片描述

2.消息队列

目前企业中比较常见的消息队列产品主 要有 Kafka、ActiveMQ 、RabbitMQ 、RocketMQ 等。
在大数据场景主要采用 Kafka 作为消息队列。在 JavaEE 开发中主要采用 ActiveMQ、RabbitMQ、RocketMQ

2.1 传统消息队列的应用场景

传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信

  1. 消息队列的应用场景——缓冲/消峰
    在这里插入图片描述
    在这里插入图片描述
  2. 消息队列的应用场景——解耦
    解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束
    在这里插入图片描述
  3. 消息队列的应用场景——异步通信
    异步通信:允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。
    在这里插入图片描述

2.2 消息队列的两种模式

  1. 点对点模式
    消费者主动拉取数据,消息收到后清除消息
    在这里插入图片描述

  2. 发布/订阅模式
    在这里插入图片描述

3.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。

http://www.ppmy.cn/news/48217.html

相关文章

用户画像项目失败的表面原因

▌原因一:混淆了过去和未来 问1:一个用户昨天买了苹果,前天买了苹果,大前天也买了苹果,他今天买不买苹果? 问2:一个用户买了酱油,鸡翅,可乐,请问他是否还需要…

mysql 海量数据设计:对数据库存储有深入研究

索引: 聚簇索引 二级索引 联合索引:最左匹配原则、自动优化顺序 索引优化方向: 存储空间 主键选择:自增主键、随机主键、业务主键 如何设计一个雪花算法: 正数 时间戳 机器id(固定) 服务id 序号 package ut…

Redis的事务

Redis的事务 1. 是什么? Redis事务可以一次执行多个命令,本质是一组命令的集合 一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞 2. 能干嘛 一个队列中,一次性、顺序性、排他性地执行一些列命令 3. Redis事务 VS MySQL事务 4. Redis事…

FTP上传下载

这里FTP上传使用的是: commons-net:commons-net:3.6 首先登录 FTPClient client new FTPClient();// 连接FPT服务器,设置IP及端口client.connect(host地址, port端口);client.login(userName用户名, passWord密码);client.changeWorkingDirectory(filePath文件夹…

Django | 一文完美解决admin增加新用户只有用户名密码和确认密码的问题

文章目录 如图所示,下面给出解决方案: 如果您使用 使用 Django 默认的后台管理界面添加用户时,只看到了三个字段(通常是 username、password和 repassword),那么可以通过定义 add_fieldsets 属性来增加更多…

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是…

我把Solon打包成了native image,速度快的惊人

我刚开始对 Solon 感兴趣的原因,就是启动快、包体积小,用了一段时间之后,发现 Solon 使用 GraalVM native iamge 打包有一些问题,我把问题发到 Solon 用户群里,作者告诉我 Solon 的原生编译还 beat 阶段,只…

内存管理、内存映射、mmap

内存管理 MMU:Memory Management Unit,内存管理单元,CPU中独立硬件,负责处理CPU的内存访问请求。虚拟地址到物理地址的转换(即虚拟内存管理)。 物理内存:真实存在的插在主板内存槽上的内存条&a…