目录

  • 一、Kafka定义
  • 二、消息队列
    • 2.1、传统消息队列的应用场景
    • 2.2、消息队列的两种模式
      • 2.2.1、点对点模式
      • 2.2.2、发布/ 订阅模式
  • 三、Kafka 基础架构

一、Kafka定义

  • Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message
    Queue),主要应用于大数据实时处理领域。
  • Kafka最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming
    Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。
  • 发布/ 订阅:订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。

二、消息队列

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

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

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

  • 缓冲/ 消峰:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。

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

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

2.2、消息队列的两种模式

2.2.1、点对点模式

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

2.2.2、发布/ 订阅模式

  • 可以有多个topic主题(浏览、点赞、收藏、评论等)
  • 消费者消费数据之后,不删除数据
  • 每个消费者相互独立,都可以消费到数据

三、Kafka 基础架构

  • Kafka 基础架构图
  • Kafka 基础架构图的名词解释
    名词 解释
    Producer 消息生产者,就是向 Kafka broker发消息的客户端。
    Consumer 消息消费者,向 Kafka broker 取消息的客户端。
    Consumer Group (CG ) 消费者组,由多个 consumer组成。 消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个 组内 消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即 消费者组是逻辑上的一个订阅者。
    Broker 一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker可以容纳多个 topic。
    Topic 可以理解为一个队列, 生产者和消费者面向的都是一个 topic。
    Partition 为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。
    Replica 副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower。
    Leader 每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。
    Follower 每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

Kafka3.0.0版本—— Kafka概述相关推荐

  1. 番茄日志发布1.0.3版本-增加Kafka支持

    番茄日志(TomatoLog)能做什么 可能你是第一次听说TomatoLog,没关系,我可以从头告诉你,通过了解番茄日志,希望能帮助有需要的朋友,番茄日志处理将大大降低你采集.分析.处理日志的过程. ...

  2. WildFly 8.2.0.Final版本–更改的快速概述

    自从我上次在此博客上写作以来已经有一段时间了. 尽管我有一些我想写博客的主题,但我只是没有足够的时间来做. 在看到JBoss社区成员之一的邮件后,我终于决定今天写这篇文章,检查为什么最近这里没有任何更 ...

  3. java 订阅 kafka_尝试从kafka(0.10版本)访问kafka(0.90版本)时订阅方法抛出错误...

    这是我们的开发环境 1)kafka集群 - 版本是0.10 2)Spark集群 - 1.6有0.9 Kafka jar 我们试图在spark集群模式下生成()和consume() . (通过spark ...

  4. 0.10版本后的kafka配置producer和comsumer的server参数

    在springboot项目中配置kafka的参数时: kafka在0.10版本后,bootstrap.servers参数producer和comsumer都配kafka的broker的IP和端口. 在 ...

  5. kafka 0.10.0.0 版本

    kafka 0.10.0.0 版本 一.安装kafka 1)下载路径:http://apache.fayea.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz 2) ...

  6. kafka安装(版本kafka_2.11-0.11.0.0)

    下载地址 https://archive.apache.org/dist/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz 安装 配置server.properties 搭 ...

  7. Kafka3.0.0单机安装及简单使用

    1.下载Kafka3.0.0 下载地址:Kafka下载 我下载的是kafka_2.12-3.0.0.tgz 版本的,本文也是基于此版本. 2.安装 下载完成后上传到linux后,进行解压,命令: ta ...

  8. Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到 17 了吗?

    欢迎关注方志朋的博客,回复"666"获面试宝典 ‍ ‍文章来源:程序猿DD‍ ‍ 2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本M ...

  9. sqlite-1.0.0源码执行的基本流程概述

    sqlite-1.0.0原理概述 sqlite是一款嵌入式的轻量级的数据库,首个版本诞生于2000年,该数据库遵守ACID的关系数据库管理系统,SQLite不是一个cs架构的数据库引擎,而是被集成在用 ...

最新文章

  1. swift集成alamofire的简单封装
  2. 神州6号发射成功了--庆祝一下
  3. Hulu视频如何提升推荐多样性?
  4. SAP 库存关联表信息
  5. linux修改open files:ulimit、file-max
  6. java和jvm的再认识
  7. stm32 无符号整形_十进制字符串转化为无符号整数
  8. ASP.NET 2.0 中的资源与本地化
  9. mysql怎么多表备份_学习MySQL多表操作和备份处理
  10. 送书|北大出版:R语言数据分析与可视化从入门到精通
  11. 公共子序列(信息学奥赛一本通-T1297)
  12. socket服务端处理多个客户端的请求学习理解
  13. mac tree命令
  14. imitate wechat - 3
  15. Android Logcat输出为何能自动换行输出的原因以及多\n的作用
  16. MATLAB构造向量
  17. C语言中的while(y--)什么意思,while(x)什么意思
  18. 构造启发式算法:最邻近插入法
  19. Vue全家桶学习笔记:Vue Router篇
  20. 数据结构与算法---均摊时间复杂度

热门文章

  1. 程序员必备的七种武器
  2. 2021城阳一中高考成绩查询,2021年青岛高考状元是谁分数多少分,历年青岛高考状元名单...
  3. 2021上海国际快递物流博览会4月27开幕了
  4. i5 10600k和i5 9600k的区别
  5. python动态图片转字符画_用Python实现图画转换字符画
  6. VS2008序列号/注册码/90天试用版改…
  7. java迷宫队列实现_老鼠走迷宫(队列实现)
  8. Swagger3的基本使用
  9. 用Python的双端队列deque实现非常简单的大富翁地图
  10. 毕设系列教程-基于Blinker和小爱同学的智能家居设计与现实-系统介绍