Apache Kafka Deep 解析

2023-11-12

1、首先了解主题,经纪人,生产者和消费者等主要术语。 下图说明了主要术语,表格详细描述了图表组件。

Fundamentals

在上图中,主题配置为三个分区。 分区1具有两个偏移因子0和1.分区2具有四个偏移因子0,1,2和3.分区3具有一个偏移因子0.副本的id与承载它的服务器的id相同。

假设,如果主题的复制因子设置为3,那么Kafka将创建每个分区的3个相同的副本,并将它们放在集群中以使其可用于其所有操作。 为了平衡集群中的负载,每个代理都存储一个或多个这些分区。 多个生产者和消费者可以同时发布和检索消息。

S.No 组件和说明
1

Topics(主题)

属于特定类别的消息流称为主题。 数据存储在主题中。

主题被拆分成分区。 对于每个主题,Kafka保存一个分区的数据。 每个这样的分区包含不可变有序序列的消息。 分区被实现为具有相等大小的一组分段文件。

2

Partition(分区)

主题可能有许多分区,因此它可以处理任意数量的数据。

3

Partition offset(分区偏移)

每个分区消息具有称为 offset 的唯一序列标识。

4

Replicas of partition(分区备份)

副本只是一个分区的备份。 副本从不读取或写入数据。 它们用于防止数据丢失。

5

Brokers(经纪人)

  • 代理是负责维护发布数据的简单系统。 每个代理中的每个主题可以具有零个或多个分区。 假设,如果在一个主题和N个代理中有N个分区,每个代理将有一个分区。

  • 假设在一个主题中有N个分区并且多于N个代理(n + m),则第一个N代理将具有一个分区,并且下一个M代理将不具有用于该特定主题的任何分区。

  • 假设在一个主题中有N个分区并且小于N个代理(n-m),每个代理将在它们之间具有一个或多个分区共享。 由于代理之间的负载分布不相等,不推荐使用此方案。

6

Kafka Cluster(Kafka集群)

Kafka有多个代理被称为Kafka集群。 可以扩展Kafka集群,无需停机。 这些集群用于管理消息数据的持久性和复制。

7

Producers(生产者)

生产者是发送给一个或多个Kafka主题的消息的发布者。 生产者向Kafka经纪人发送数据。 每当生产者将消息发布给代理时,代理只需将消息附加到最后一个段文件。 实际上,该消息将被附加到分区。 生产者还可以向他们选择的分区发送消息。

8

Consumers(消费者)

Consumers从经纪人处读取数据。 消费者订阅一个或多个主题,并通过从代理中提取数据来使用已发布的消息。

9

Leader(领导者)

 Leader 是负责给定分区的所有读取和写入的节点。 每个分区都有一个服务器充当Leader

10

Follower(追随者)

跟随领导者指令的节点被称为Follower。 如果领导失败,一个追随者将自动成为新的领导者。 跟随者作为正常消费者,拉取消息并更新其自己的数据存储。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Kafka Deep 解析 的相关文章

  • 《从Paxos到ZooKeeper》读书笔记之第一章(二)

    从Paxos到ZooKeeper 读书笔记之第一章 二 1 2从ACID到CAP BASE 这一节由三小节 从大家数值的数据库事务的四个特性 引出来分布式事务的概念 通过对ACID模型的讨论 提出如何构建一个兼顾可用性和一致性的分布式系统方
  • Kafka面试必问几个概念 与 使用场景

    介绍下我写的这个kafka项目 里面做了详细的配置注释已经代码的demo 可供大家学习 项目 地址 springboot kafka集群项目实战 kafka集群批量消费数据去重和一致性 kafka的几个重要概念 接下来围绕下面几个概念来进行
  • kafka知识 --kafka权威指南

    我想既然Kafka是为了写数据而产生的 那么用作家的名字来命名会显得更有意义 我在大学时期上过很多文学课程 很喜欢Franz Kafka 况且 对于开源项目来说 这个名字听起来很酷 因此 名字和应用本身基本没有太多联系 Jay Kreps
  • Kafka——javaAPI

    文章目录 Kafka的JavaAPI 1 未整合版的Kafka的API 1 1 Producer 消息发送端代码 1 2 Consumer 消息消费端代码 2 Spring Boot整合Kafka 2 1 发送者代码 Producer 2
  • Kafka之基础笔记

    1 kafka offset 存储 1 1 去zookeeper依赖 比较广为人知的Kafka offset存储方式为zookeeper 在0 8版本时 默认依然是zk 但是此时其实已经出现另外一种offset存储方式了 Kafka以 co
  • Kafka3.0.0版本——消费者(消费者组案例)

    目录 一 消费者组案例 1 1 案例需求 1 2 案例代码 1 2 1 消费者1代码 1 2 2 消费者2代码 1 2 3 消费者3代码 1 2 4 生产者代码 1 3 测试 一 消费者组案例 1 1 案例需求 测试同一个主题的分区数据 只
  • Kafka/Spark消费topic到写出到topic

    1 Kafka的工具类 1 1 从kafka消费数据的方法 消费者代码 def getKafkaDStream ssc StreamingContext topic String groupId String consumerConfigs
  • Kafka【命令行操作】

    Kafka 命令行操作 Kafka 主要包括三大部分 生产者 主题分区节点 消费者 1 Topic 命令行操作 也就是我们 kafka 下的脚本 kafka topics sh 的相关操作 常用命令行操作 参数 描述 bootstrap s
  • kafka中partition数量与消费者对应关系

    kafka是由Apache软件基金会开发的一个开源流处理平台 kafka是一种高吞吐量的分布式发布订阅消息系统 它可以处理消费者在网站中的所有动作流数据 kafka中partition类似数据库中的分表数据 可以起到水平扩展数据的目的 比如
  • Kafka原理分析

    在基础篇中我们介绍MQ的一些基础原理 这篇文章 我们针对kafka进行较深入的分析 上篇文章中我们提到了kafka中一个名词broker 其实broker可以理解成为一台kafa服务器 kafka的特性和功能 在kafka设计之初是为了实时
  • Linux 下搭建 Kafka 环境

    安装步骤 准备软件目录 mkdir datalake 上传之前下载好的安装包到 datalake 目录下 jdk 8u181 linux x64 gz kafka 2 11 2 1 0 tgz zookeeper 3 4 5 tar gz
  • Kafka一文懂

    初识 Kafka 什么是 Kafka Kafka 是由 Linkedin 公司开发的 它是一个分布式的 支持多分区 多副本 基于 Zookeeper 的分布式消息流平台 它同时也是一款开源的基于发布订阅模式的消息引擎系统 Kafka 的基本
  • springboot集成kafka实战项目,kafka生产者、消费者、创建topic,指定消费分区

    springboot集成kafka实战项目 kafka生产者 消费者 创建topic 指定消费分区 前言 本项目代码可直接集成到你现有的springboot项目中 功能包括 1 kafka生产者配置 2 kafka消费者配置 指定分区消费
  • kafka消费者客户端线程安全以及多线程实现并发读取消息

    kafka的生产者客户端Producer是线程安全的 但是消费者客户端是非线程安全的 每次操作时都会调用accqure方法用来确定当前只有一个线程操作 如果有多个线程在操作 会抛出CME异常 针对这种情况 为了能够多线程更快速的读取消息 可
  • win10系统下安装Kafka 的详细步骤

    Win10 系统下要使用Kafka需要经过以下三个步骤 1 安装JDK 需要安装依赖java JDK 2 安装zookeeper 资源协调 分配管理 3 安装Kafka 一 安装 Java SE Development Kit 13 0 1
  • kafka配置内外网访问

    listeners 学名叫监听器 其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务 advertised listeners 和 listeners 相比多了个 advertised Advertised 的
  • Kafka入门基础知识学习笔记-Kafka只是消息引擎吗

    学习极客时间 Kafka核心技术与实战 入门 03 05 作者 胡夕 Apache Kafka 的一名代码贡献者 目前在社区的 Patch 提交总数位列第 22 位 应该说算是国内比较活跃的贡献者了 胡夕老师 赠言 聪明人也要下死功夫 最近
  • kafka(三)重平衡

    历史文章 kafka 一 kafka的基础与常用配置 文章目录 一 kafka消费者组 二 重平衡 Rebalance 2 1 重平衡触发条件 2 2 重平衡策略 2 2 1 Range 平均分配 2 2 2 RoundRobin 轮询分配
  • 一文弄懂事件Event与Kafka的区别

    事件 Event 和 Apache Kafka 是两个概念层面上有所不同的东西 它们在应用程序中的作用和使用场景也有很大的差异 1 概念和定义 事件 Event 事件是 系统内发生 的特定事情或状态变化的表示 在编程和软件设计中 事件通常被
  • 消息队列选型:Kafka 如何实现高性能?

    在分布式消息模块中 我将对消息队列中应用最广泛的 Kafka 和 RocketMQ 进行梳理 以便于你在应用中可以更好地进行消息队列选型 另外 这两款消息队列也是面试的高频考点 所以 本文我们就一起来看一下 Kafka 是如何实现高性能的

随机推荐

  • 性能测试基础

    性能测试基础知识 性能测试的定义 衡量软件的性能需要考虑的三点内容 性能测试的分类 压力测试 负载测试 容量测试 强度测试 配置测试 基准测试 并发测试 性能指标 响应时间 吞吐量 服务器资源占用 以下内容比较枯燥 但是作为基础无法绕开 就
  • Kuebernetes之DaemonSet

    DaemonSet确保集群中每个 部分 node运行一份pod副本 当node加入集群时创建pod 当node离开集群时回收pod 如果删除DaemonSet 其创建的所有pod也被删除 DaemonSet中的pod覆盖整个集群 当需要在集
  • SpringBoot项目实现增删改查

    接上一章 Java 连接MySql 原你是阳光 O 的博客 CSDN博客 实现单表增删改查 引入依赖
  • JVM调优

    1 JVM运行时数据区 2 基础 1 类加载器 2 双亲委派 2 沙箱机制 3 垃圾回收算法 1 引用计数 2 复制 3 标记清除 4 标记整理 4 GCRoot 1 虚拟机栈中的引用对象 2 方法区中的类静态属性引用的对象 3 方法区中的
  • Python课堂练习

    文章目录 1 用for循环来计算1 2 3 100 2 用for循环来计算1 3 5 99 3 百钱买百鸡问题 采用三重循环 4 百钱买百鸡问题2 采用三重循环 5 采用for算令狐大侠喝了多少酒 6 采用for循环遍历序列 sequenc
  • Ubuntu升级python版本

    Ubuntu18 04的python3版本太低了 默认的python3版本为python3 6 我在安装mavros的时候 有一个包sympy需要 gt 1 10以上 但是需要的python版本为python3 8及更新版本 所以我就想把我
  • vue 假期工作日设置_假期申请第8天2月25日

    vue 假期工作日设置 It s that time again project week 又是时候了 项目周 This time around the project week started on Monday August 24th
  • centos7换源

    1 首先备份系统自带yum源配置文件 etc yum repos d CentOS Base repo mv etc yum repos d CentOS Base repo etc yum repos d CentOS Base repo
  • import cv2出现“ImportError: DLL load failed: 找不到指定的模块”

    2 1 将cv2 cp36 win amd64 pyd 文件复制一份 防止一会儿改完不行 又不知道原来是什么了 更改内容如下 import importlib from cv2 import 前面去掉点之后变成这样 from data im
  • 一文让你彻底了解Linux内核文件系统

    一 文件系统特点 文件系统要有严格的组织形式 使得文件能够以块为单位进行存储 文件系统中也要有索引区 用来方便查找一个文件分成的多个块都存放在了什么位置 如果文件系统中有的文件是热点文件 近期经常被读取和写入 文件系统应该有缓存层 文件应该
  • 用Go构建一个简单的区块链

    在本教程中 我将尝试通过帮助你在Go中编写简单的区块链来揭开区块链的广义概念 在本教程中 你应该能够 理解区块链术语 创建自己的简单区块链 了解什么是区块以及如何创建块 了解如何维护区块链的完整性 区块链 一种数字分类帐 以较小的集合排列
  • 数据诊断模型,该怎么搭建?

    你会用数据下判断吗 你怎么确定你的判断是准确的 现在业务说你判断错了 你怎么应对 用数据下判断 是看似简单 实则极大影响数据分析结果的一个问题 同样是本月销售业绩1000万 如果判断是 业绩很好 那么下一步的分析就是总结成功经验 如果判断是
  • 悟空crm php 部署,悟空crm开源版本环境搭建

    安装步骤 JDK需要预先安装 下载后执行install sh 链接 link 硬件配置 因为只有一台机器所以安装在一台机器上了 cpu 内存 硬盘 系统 8核 32G ssd100G centos7 基础软件 mysql安装 1 卸载mar
  • DataGrip数据库连接失败:DBMS: MySQL (无版本)区分大小写: 普通形式=mixed, 分隔形式=exactConnection refused: connect.

    查看任务管理器 服务 mysql服务是否正在运行 右键可控制关闭运行
  • 如何查看视图的sql语句

    select text from syscomments s1 join sysobjects s2 on s1 id s2 id where name 视图名称 前提条件是视图没有被加密 有权限 转载于 https www cnblogs
  • Flink on Zeppelin-1

    准备工作 下载Zeppelin 0 9 0 preview1 或者下载 除了下载Flink的标准release 如果你要使用Flink on Yarn模式或者连接Hive 那么你还需要下载其他Flink组件 flink hadoop com
  • AutoGPT太火了,无需人类插手自主完成任务,ChatGPT 已经过时了?

    转载自 机器之心Pro 原文链接 AutoGPT太火了 无需人类插手自主完成任务 GitHub2 7万星 OpenAI 的 Andrej Karpathy 都大力宣传 认为 AutoGPT 是 prompt 工程的下一个前沿 近日 AI 界
  • Vue3 解决电脑分辨率及缩放导致页面变形的问题

    Vue3 解决电脑分辨率不同导致的页面变形问题 前言 电脑缩放问题解决 屏幕分辨率问题解决 前言 最近在做一个项目 突然发现由于调整电脑的分辨率导致页面变形的问题 正常电脑显示的是100 当调整电脑缩放至125 时 页面发生变形 由于css
  • springboot相关图形

    一 springboot的需求调研 需求分析 即应用场景 开发中如果使用spring springmvc spring集成第三方框架 如springmvc mybatis等 都需要编写大量的xml配置文件 二 框架的设计思想 不需要配置文件
  • Apache Kafka Deep 解析

    1 首先了解主题 经纪人 生产者和消费者等主要术语 下图说明了主要术语 表格详细描述了图表组件 在上图中 主题配置为三个分区 分区1具有两个偏移因子0和1 分区2具有四个偏移因子0 1 2和3 分区3具有一个偏移因子0 副本的id与承载它的