前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >KafKa主题、分区、副本、消息代理

KafKa主题、分区、副本、消息代理

原创
作者头像
NeilNiu
发布于 2023-03-14 13:45:40
发布于 2023-03-14 13:45:40
6050
举报
文章被收录于专栏:NeilNiu专栏NeilNiu专栏

主题

Topic主题,类似数据库中的表,将相同类型的消息存储到同一个主题中,数据库中的表是结构化的,Topic的属于半结构化的,主题可以包含多个分区,KafKa是一个分布式消息系统,分区是kafka的分布式的基础,分区使kafka具备了拓展性,如果数据存储在单服务器上,可能会遇到存储的限制,从而导致性能的瓶颈。

分区

Kafka将主题拆分为多个分区,不同的分区存在不同的服务器上,这样就使kafka具有拓展性,可以通过调整分区的数量和节点的数量,来线性对Kafka进行拓展,分区是一个线性增长的不可变日志,当消息存储到分区中之后,消息就不可变更,kafka为每条消息设置一个偏移量也就是offset,offset可以记录每条消息的位置,kafka可以通过偏移量对消息进行提取,但是没法对消息的内容进行检索和查询,偏移量在每个分区中是唯一的不可重复,并且它是递增的,不同分区间偏移量可以重复。

kafka中的消息Record是以键值对的形式进行存储的,如果不指定key,key的值为空,当发送消息key为空,kafka会以轮询的方式将不同的消息,存放到不同的分区中,如果指定了消息key,相同的key会被写入到同一个分区,这样就可以保证具有相同key的消息按照一定的顺序进行写入。分区可以保证kafka的集群进行线性的拓展。

副本

如果分区只存在一份的话,一旦分区损害,这份数据就会丢失,kafka通过副本机制,保证数据的可靠性,可以设置副本因子的数量,replication-factor=3,含义就是包含主分区在内三个副本,kafka会选择一个副本做为主分区,主分区称之为leader,所有写入都是写入到leader中的,数据的读取也是从leader中读取的,其他两个副本称之follower,follower从leader中复制数据,保持数据的一致性,kafka会监控副本之间数据同步的状态,在元数据中维护一个ISR的集合,正在同步的副本集,这个例子中这三个副本保持正常的数据同步,如果某个副本不能正常的同步数据,或者落后的比较多,kafka会从同步的副本集将这个副本剔除,直到这个节点追赶上来之后,再重新加入,ISR=[101,102,103]

消息代理

Kafka集群是由多个broker组成的,broker负责消息的读写请求,并将数据写入到磁盘中,通常在每个服务器上都启动一个broker实例,通常情况一台服务器就是一个broker,

例子,kafka集群由8个broker组成,集群中的组成有8个分区,分别是p0到p7,副本因子是3,就是说每个数据存在3份,每个分区都有一个leader,两个follower,以第一个broker为例这个broker有三个分区,P0、P1、P2,P1这个分区是一个leader,P1的所有读写请求都是由这个Broker进行处理的,P0和P2分区是follower,这个broker只负责从p0 和p2的leader中同步数据,而不负责这两个分区的读写请求。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kafka主题,分区,副本介绍
今天分享一下kafka的主题(topic),分区(partition)和副本(replication),主题是Kafka中很重要的部分,消息的生产和消费都要以主题为基础,一个主题可以对应多个分区,一个分区属于某个主题,一个分区又可以对应多个副本,副本分为leader和follower。
小四的技术之旅
2023/03/14
2.6K0
Kafka主题,分区,副本介绍
《我想进大厂》之kafka夺命连环11问
最近整理了一下文章目录,因为好早之前就有兄弟跟我说之前文章找不到,我也懒得整理,现在好好整了一下,发现有一篇文章写了一半我就放着了,抽空把他刚好补齐了一下,之前放着没写大概是很难想到从哪里凑这么多问题???
艾小仙
2021/11/08
4690
《我想进大厂》之kafka夺命连环11问
Kafka学习笔记之分区Partition和副本Replicator的区别
本篇主要介绍kafka的分区和副本,因为这两者是有些关联的,所以就放在一起来讲了,后面顺便会给出一些对应的配置以及具体的实现代码,以供参考~
Jetpropelledsnake21
2020/12/29
1.2K0
从面试角度一文学完 Kafka
Kafka 是一个优秀的分布式消息中间件,许多系统中都会使用到 Kafka 来做消息通信。对分布式消息系统的了解和使用几乎成为一个后台开发人员必备的技能。
Bug开发工程师
2020/10/26
1.3K0
从面试角度一文学完 Kafka
Kafka作为消息系统的系统补充
Apache Kafka由Scala和Java编写,基于生产者和消费者模型作为开源的分布式发布订阅消息系统。它提供了类似于JMS的特性,但设计上又有很大区别,它不是JMS规范的实现,如Kafka允许多个消费者主动拉取数据,而在JMS中只有点对点模式消费者才会主动拉取数据。
大数据学习与分享
2020/08/10
5370
Kafka作为消息系统的系统补充
一文快速了解Kafka
初学Kafka,肯定会被各种概念搞得很头疼,所以整理下Kafka进阶学习必须要了解的概念。
全菜工程师小辉
2021/05/17
1.1K0
一文快速了解Kafka
图说Kafka基本概念
使用kafka可以对系统解耦、流量削峰、缓冲,可以实现系统间的异步通信等。在活动追踪、消息传递、度量指标、日志记录和流式处理等场景中非常适合使用kafka。这篇文章主要介绍下kafka中的基本概念。
valineliu
2022/09/01
1.8K0
图说Kafka基本概念
Kafka实践与原理
其中Zookeeper是Kafka用来负责元数据的管理、控制器的选举。Producer将消息发送到Broker,Broker负责将消息存储到磁盘中,而Consumer负责从Broker订阅并消费消息。
mikelLam
2022/10/31
3850
Kafka实践与原理
Kafka - 分区中各种偏移量的说明
Kafka是一个高性能、高吞吐量的分布式消息系统,被广泛应用于大数据领域。在Kafka中,分区是一个重要的概念,它可以将数据分发到不同的节点上,以实现负载均衡和高可用性。在分区中,有一些重要的偏移量指标,包括AR、ISR、OSR、HW和LEO。下面我们来详细解释一下这些指标的含义和作用。
小小工匠
2023/07/24
1.2K0
Kafka - 分区中各种偏移量的说明
六问 Kafka 为啥那么牛!
Kafka架构(下方该是Consumer) Kafka 是一个分布式的基于发布/订阅模式的消息队列,依靠其强悍的吞吐量,Kafka 主要应用于大数据实时处理领域。在数据采集、传输、存储的过程中发挥着举足轻重的作用。
main方法
2021/07/19
4930
六问 Kafka 为啥那么牛!
Kafka是如何保证高性能和高吞吐量的?
最早设计的目的是作为LinkedIn的活动流和运营数据的处理管道。这些数据主要是用来对用户做用户画像分析以及服务器性能数据的一些监控。
IT大咖说
2019/11/14
2.9K0
Kafka核心原理的秘密,藏在这19张图里!
导语 | 本文推选自腾讯云开发者社区-【技思广益 · 腾讯技术人原创集】专栏。该专栏是腾讯云开发者社区为腾讯技术人与广泛开发者打造的分享交流窗口。栏目邀约腾讯技术人分享原创的技术积淀,与广泛开发者互启迪共成长。本文作者是腾讯后端开发工程师刘国强。 使用kafka可以对系统解耦、流量削峰、缓冲,可以实现系统间的异步通信等。在活动追踪、消息传递、度量指标、日志记录和流式处理等场景中非常适合使用kafka。这篇文章主要介绍下kafka中的基本概念。 kafka的整体结构 下图展示了很多关于kafka的细节,暂时
腾讯云开发者
2022/09/27
4060
Kafka核心原理的秘密,藏在这19张图里!
Kafka 3.0新特性全面曝光,真香!
导语 | kafka3.0的版本已经试推行去zk的kafka架构了,如果去掉了zk,那么在kafka新的版本当中使用什么技术来代替了zk的位置呢,接下来我们一起来一探究竟,了解kafka的内置共识机制和raft算法。 一、Kafka简介 Kafka是一款开源的消息引擎系统。一个典型的Kafka体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如上图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将
腾讯云开发者
2022/04/15
1.2K0
Kafka 3.0新特性全面曝光,真香!
Kafka 原理以及分区分配策略剖析
Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列【Message Queue】)。
Spark学习技巧
2021/08/24
4110
Kafka 原理以及分区分配策略剖析
Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列【Message Queue】)。
JAVA葵花宝典
2021/09/29
3.1K0
Kafka 原理以及分区分配策略剖析
都说Kafka牛3万字带你全面掌握kafka
系统间的耦合高怎么办,我们如何不让一个服务过于庞大,一个好的方式就是依据具体的功能模块拆分服务,降低服务的耦合度,服务间的交互可以通过消息传递数据来实现,除此之外Kafka非常适合在线日志收集等高吞吐场景,kafka有更好的吞吐量,内置分区,副本和故障转移,这有利于处理大规模的消息,所以kafka被各大公司广泛运用于消息队列的构建:
大数据老哥
2021/03/05
1.3K0
都说Kafka牛3万字带你全面掌握kafka
从面试角度详解Kafka
Kafka 是一个优秀的分布式消息中间件,许多系统中都会使用到 Kafka 来做消息通信。对分布式消息系统的了解和使用几乎成为一个开发人员必备的技能。
大数据真好玩
2021/07/12
9660
kafka之消息文件存储机制和数据同步(三)
前面我们知道了一个 topic 的多个 partition 在物理磁盘上的保存路径,那么我们再来分析日志的存储方式。通过如下命令找到对应 partition 下的日志内容
周杰伦本人
2022/10/25
7050
kafka之消息文件存储机制和数据同步(三)
kafka第二次课!!!
1,课程回顾 2,本章重点 kafka的整体工作流程 消息生产者写入消息过程 消息消费者消费要点 kafka的Java api
张哥编程
2024/12/13
970
2万长文搞懂Kafka
生产者:Producer 往Kafka集群生成数据消费者:Consumer 往Kafka里面去获取数据,处理数据、消费数据Kafka的数据是由消费者自己去拉去Kafka里面的数据主题:topic分区:partition 默认一个topic有一个分区(partition),自己可设置多个分区(分区分散存储在服务器不同节点上)
用户4283147
2022/10/27
4710
2万长文搞懂Kafka
相关推荐
Kafka主题,分区,副本介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档