文章目录

  • 一、Kafka 概述
    • 1. 定义
    • 2. 消息队列
      • 2.1 传统消息队列的应用场景
        • (1)缓冲/削峰
        • (2)解耦
        • (3)异步通信
      • 2.2 消息队列的两种模式
        • (1) 点对点模式
        • (2) 发布/订阅模式
    • 3. Kafka 基础架构

一、Kafka 概述

1. 定义

Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式消息队列(MessageQueue),主要应用于大数据实时处理领域。
发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息

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

应用场景:
通过前端埋点记录用户的行为数据,再通过接口的形式将数据同步到日志服务器中,Flume可以监控日志文件内容的变化,并把日志数据上传Hadoop大数据平台进行分析。
日常情况,Hadoop的上传速度,可以满足Flume采集速度。
高并发情况,Hadoop的上传速度不能满足Flume采集速度,此时可以加入Kafka中间件进行处理,先将大量数据存到Kafka中,可以起到缓冲作用,然后Hadoop再按照自己的速度慢慢进行消费。

2. 消息队列

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

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

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

(1)缓冲/削峰

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

(2)解耦

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

(3)异步通信

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

2.2 消息队列的两种模式

(1) 点对点模式

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

(2) 发布/订阅模式

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

3. Kafka 基础架构

简单结构:

当有海量数据时,需要进行分区处理

(1)Producer:消息生产者,就是向 Kafka broker 发消息的客户端。
(2)Consumer:消息消费者,向 Kafka broker 获取消息的客户端。
(3)Consumer Group(CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费(例如:TopicA-Patition0只能被某个group中的某个Consumer消费);消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
(4)Broker:一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topic。
(5)Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topic。
(6)Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。
(7)Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower(例如:2个副本TopicA-Patition0,有一个是 Leader,剩余的是Follower)。
(8)Leader:每个分区多个副本中的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader(不是Follower )
(9)Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。
(10)Kafka中有一部分数据存储在Zookeeper中,例如:记录有哪些broker(上图中的broker0、broker1、broker2);
还可以记录每一个分区中谁是leader。

Kafka(一)- Kafka 概述相关推荐

  1. 【kafka】Kafka 幂等 Producer

    1.概述 [Kafka]Kafka幂等性原理及实现剖析 [kafka]Kafka 事务性之幂等性实现 官网:Idempotent Producer 2.简介 Kafka提供了"至少一次&qu ...

  2. 【Kafka】Kafka 增量 Rebalancing: Support and Policies

    1.概述 翻译:Incremental Cooperative Rebalancing: Support and Policies 2.介绍 在Apache Kafka中,分布式应用进程之间的再平衡得 ...

  3. 【kafka】kafka 生态系统 Ecosystem

    1.概述 官网:kafka 生态系统 Ecosystem 下面是我们被告知在主发行版之外与Kafka集成的工具列表.我们还没有全部尝试过,所以它们可能不起作用! 当然,Clients在这里是单独列出的 ...

  4. 【Kafka】Kafka 如果 动态 不停止的情况下 修改 消费组 offset

    文章目录 1.概述 2.方案1 3.方案2 1.概述 测试点:有人遇到这样的情况,他一个消费者正在消费一个环境的topic,然后他想启动另外一个消费组,但是是使用了同一个消费组,这个去更改 消费组of ...

  5. 【kafka】kafka获取消费组异常 EOFException: null KeeperErrorCode

    文章目录 1.场景1 1.1 概述 1.2 源码解析 1.2.1 sendRequest 1.2.2 receive 1.2.3 readCompletely 1.2 4 readFromReadab ...

  6. 【kafka】kafka kerberos Cannot locate KDC Unable to locate KDC for realm

    文章目录 1.概述 2.场景2 1.概述 本次是在 [kafka]kafka 消费 带有 kerberos认证的服务器 这个都搞通的情况下,搞这个. 机器的环境如下 12.12.12.24 kdc服务 ...

  7. 【kafka】kafka kerberos KeeperErrorCode = InvalidACL for /config/topics

    文章目录 1.概述 1.概述 环境搭建参考:[kafka]kafka 消费 带有 kerberos认证的服务器 在这个kerberos认证的环境下,我想测试一下,构建zk的客户端是否需要认证,然后代码 ...

  8. 【kafka】kafka 2.4 static membership功能 group.instance.id

    1.概述 首先参考文章:[kafka]Kafka消费者分区分配策略详解 2.官网 地址:Static Membership 静态成员关系旨在提高流应用程序.消费者组和其他构建在组再平衡协议之上的应用程 ...

  9. 【kafka】kafka 启动报错 InvalidReceiveException: Invalid receive (size = -720899)

    1.概述 kafka启动报错InvalidReceiveException: Invalid receive (size = -720899) 参考文章:https://bbs.csdn.net/to ...

  10. 【kafka】kafka log 存储时间 小于 offset 存储时间 offset存在但是消费不到

    文章目录 1.概述 1.概述 在文章 [kafka]kafka 消费速度 小于 日志清理速度 (kafka数据被清理了)会发生什么 auto.offset.reset 参数 中我们知道了,数据消费慢于 ...

最新文章

  1. 《Docker技术入门与实战》读书笔记
  2. 讲讲volatile的作用
  3. 联想服务器重装2008,联想ThinkSystem机器安装2008R2详细教程
  4. linux/bsd四大防火墙我们选择谁
  5. word没有显示endnote_Word2007或2010未显示EndNote工具条的解决方法 | 科研动力
  6. java从入门到精通一(java开发入门)
  7. 题解【NOIP2013_火柴排序】— 问题与转化
  8. 【Unity3D插件】MiniMap插件分享《小地图插件》
  9. mac dmg包签名及公证
  10. 目前我国每小时就有1名电动自行车骑行者死于交通事故
  11. 【C++登山之路之初露锋芒 2】——内联函数+ 引用+auto+nullptr关键字(万字详解,图片演示,结构原理)
  12. 4个有助于保护网站免受劫持的方法
  13. 2021年上海会展行业发展现状及重点企业对比分析:展览面积为1086万平方米,同比减少1.97%[图]
  14. 概念肆虐:凭什么让“IPv9”横行无忌?
  15. QQ邮箱如何获得邮我代码
  16. N5105 软路由安装 ESXi 7 直通核显给 Debian / Ubuntu 虚拟机通过 Docker 实现 jellyfin 硬件转码视频文件(硬解/编码)
  17. Prophet学习(五)季节性、假日效应和回归因子
  18. C++:匿名函数(Lambda函数)简介
  19. 阮一峰ES6读书笔记
  20. 项目随记:8250-Oneplus

热门文章

  1. 编译出现错误,想知道为什么错误
  2. (转)FFmpeg 基本用法
  3. MATLAB中的bsxfun函数
  4. java大数据开发是做什么的
  5. Win7不激活会怎么样 Win7可以不用激活吗
  6. 物联网主要应用在哪些领域
  7. 【操作系统】操作系统
  8. RGB565颜色表,附RGB888转RGB565工具,RGB24转RGB565工具
  9. 人工神经网络(ANN)
  10. PDF文档翻译中文的方法