Apache Kafka主题 - 架构和分区
1.卡夫卡话题
在这篇Kafka文章中,我们将学习Kafka主题与Kafka Architecture的整体概念。Kafka中的体系结构包括复制,故障转移以及并行处理。此外,我们还将看到创建Kafka主题的方法以及Apache Kafka主题的示例,以便更好地理解Kafka。此外,我们将看到Kafka分区和Kafka日志分区。
那么,让我们从Kafka主题开始吧。
Apache Kafka主题 - 架构和分区
2.什么是卡夫卡主题?
简而言之,命名的记录流就是我们所说的Kafka Topic。基本上,在日志中Kafka存储主题。但是,Apache Kafka中的主题日志分为几个分区。此外,Kafka将这些日志的分区分布在多个服务器或磁盘上。换句话说,我们可以说Kafka中的主题是类别,流名称或提要。
卡夫卡的主题是什么?
此外,我们可以说Apache Kafka中的主题本身就是发布的以及订阅样式消息传递。此外,在Kafka主题中可以有零个或多个称为Kafka Consumer Groups的订户。基本上,Kafka中的这些主题分为速度,可伸缩性和大小的分区。
了解有关Kafka Pub-Sub Messaging System的更多信息
3.如何创建Kafka主题
首先,运行kafka-topics.sh并指定主题名称,复制因子和其他属性,以在Kafka中创建主题:
/bin/kafka-topics.sh --create \
--zookeeper <hostname>:<port> \
--topic <topic-name> \
--partitions <number-of-partitions> \
--replication-factor <number-of-replicating-servers>
现在,通过一个分区和一个副本,下面的示例创建一个名为“test1”的主题:
读取Kafka Monitoring
bin/kafka-topics.sh --create \
--zookeeper localhost: \
--replication-factor \
--partitions \
--topic text
此外,运行list topic命令以查看主题:
> bin/kafka-topics.sh --list --zookeeper localhost:
test1
确保当应用程序尝试生成,使用或获取不存在的主题的元数据时,auto.create.topics.enable属性设置为true时会自动创建主题。
4.卡夫卡主题分区
此外,Kafka将主题日志分成几个分区。因此,通常通过记录键,如果密钥存在并且循环,则在密钥丢失时将记录存储在分区上(默认行为)。默认情况下,有助于确定Kafka Producer发送记录的分区的键是Record Key。
基本上,为了在生产者写入的许多服务器上扩展主题,Kafka使用分区。此外,为了促进并行消费者,Kafka使用分区。此外,在故障转移方面,Kafka可以将分区复制到多个Kafka Brokers。
5. Kafka主题日志分区的订购和基数
好吧,我们可以说,只有在一个分区中,Kafka确实保持了记录顺序。由于分区也是有序的,不可变的记录序列。并且,通过将分区用作结构化提交日志,Kafka会不断附加到分区。在分区中,所有记录都分配了一个顺序ID号,我们进一步称之为偏移量。该偏移量进一步标识分区内的每个记录位置。
看看Kafka vs RabbitMQ
此外,为了扩展到适合单个服务器的大小,Topic分区允许Kafka日志。主题可以跨越许多服务器上托管的许多分区,但主题分区必须适合托管它的服务器。此外,Apache Kafka中的主题分区是并行的一个单元。也就是说,一次只能由一个分区处理分区消费者群体中的卡夫卡消费者。基本上,Kafka中的Consumer只能在自己的进程或自己的线程中运行。尽管如此,如果消费者停止,Kafka会在同一个消费者群体中的剩余消费者之间传播分区。
6. Kafka主题分区复制
出于容错的目的,Kafka可以跨可配置数量的Kafka服务器执行分区复制。基本上,每个分区中都有一个领导服务器和零个或多个跟随服务器。此外,对于分区,领导者是处理所有读写请求的人。
但是,如果领导者去世,追随者会复制领导者并接管。此外,对于组内的并行消费者处理,Kafka还使用分区。
我们来讨论Kafka Schema
7.复制:Kafka分区领导者,追随者和ISR。
但是,通过使用ZooKeeper,Kafka选择一个代理的分区副本作为领导者。此外,我们可以说,对于分区,具有分区领导者的代理处理所有记录的读写。此外,对于追随者(节点/分区对)的领导者分区,Kafka复制了写入。在定义术语ISR时,同步的跟随者就是我们所说的ISR(同步副本)。尽管如此,如果分区领导失败,Kafka会选择新的ISR作为新的领导者。
8. Kafka架构:Kafka复制 - 复制到分区0
Kafka架构:Kafka复制 - 复制到分区0
让我们讨论一下ZooKeeper在Kafka中的作用
虽然当分区的所有ISR写入其日志时,该记录被认为是“已提交”。但是,我们只能从消费者那里读取提交的记录。
Kafka主题 - 复制到分区1
所以,这完全是关于卡夫卡主题。希望你喜欢我们的解释。
了解有关Kafka Tool的更多信息
9.结论
因此,我们已经详细了解了卡夫卡主题的整个概念。此外,我们讨论了Kafka主题分区,Kafka主题中的日志分区和Kafka复制因子。此外,我们看到了Kafka Architecture并在Kafka创建了一个主题。
Apache Kafka主题 - 架构和分区的更多相关文章
- Apache kafka 工作原理介绍
消息队列 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行 ...
- Apache Kafka是数据库吗?
最近思路有些枯竭,找些务虚的话题来凑.本文内容完全来自于Martin Kelppmann在2019年Kafka伦敦峰会上的演讲.顺便提一句,Kelppmann是<Designing Data-I ...
- Apache Kafka:下一代分布式消息系统
[http://www.infoq.com/cn/articles/apache-kafka/]分布式发布-订阅消息系统. Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日 ...
- Apache Kafka: 优化部署的10个最佳实践
原文作者:Ben Bromhead 译者:江玮 原文地址:https://www.infoq.com/articles/apache-kafka-best-practices-to-opti ...
- 转 Apache Kafka:下一代分布式消息系统
简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...
- [kfaka] Apache Kafka:下一代分布式消息系统
简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...
- Apache Kafka:下一代分布式消息系统【转载】
简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...
- Apache Kafka Producer For Beginners
在我们上一篇Kafka教程中,我们讨论了Kafka Cluster.今天,我们将通过示例讨论Kafka Producer.此外,我们将看到KafkaProducer API和Producer API. ...
- Apache Kafka 学习笔记
1. 介绍Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 这种动 ...
随机推荐
- FFT版题 [51 Nod 1028] 大数乘法
题目链接:51 Nod 传送门 数的长度为10510^5105,乘起来后最大长度为2×1052\times10^52×105 由于FFT需要把长度开到222的次幂,所以不能只开到2×1052\time ...
- 【NOIP2015】斗地主 D1 T3 及 增强版 (送命题)
恶心送命模拟题 暴搜顺子,DP预处理剩下的. 由于官方数据太水,很多情况没有讨论的都能过普通版本,想要测试自己代码正确性的同学们可以交交这道题,有很多dalao给出了hack数据 : Luogu P2 ...
- Build Post Office
Description Given a 2D grid, each cell is either an house 1 or empty 0 (the number zero, one), find ...
- Support Vector Machines
支持向量机SVM. 简介 SVM核函数包括线性核函数.多项式核函数.径向基核函数.高斯核函数.幂指数核函数.拉普拉斯核函数.ANOVA核函数.二次有理核函数.多元二次核函数.逆多元二次核函数以及Sig ...
- 使用singer tap-postgres 同步数据到pg
singer 是一个很不错的开源etl 解决方案,以下演示一个简单的数据从pg 同步到pg 很简单就是使用tap-postgres + target-postgres 环境准备 对于测试的环境的数据库 ...
- 在nodejs中操作数据库(MongoDB和MySQL为例)
一.使用nodejs操作MongoDB数据库 ①使用官方的mongodb包来操作 ②使用第三方的mongoose包来操作(比较常用) // 首先必须使MongoDB数据库保持开启状态 // npm下载 ...
- 数组(定义、遍历、冒泡排序、合并和Join 方法)
一.数组的定义 1.理解:数组指一组数据,有序的数据,可以一次性存储多个数据,将多个元素(通常统一类型)按照一定的顺序排列放到一个集合里 2.通过构造函数创建数组: var 数组名=new Arrar ...
- C语言博客作业--结构体,文件
1.本章学习总结(2分) 1.1 学习内容总结 (1)结构体如何定义.成员如何赋值 结构体的一般形式为: struct 结构体名 { 数据类型 成员名1: 数据 ...
- shell脚本编程基础之自定义函数库
脚本编程知识点 ${#VAR_NAME}:引用变量中字符的长度 A="25 90 100 120": echo ${A#* }:针对A变量,#表示从左往右,*空格表示以空格为分隔符 ...
- mark_rabbitMQ
一.1.6 和1.7的区别 二.63跟65好像有点差异 有些jar包问题 三.预取策略 https://blog.csdn.net/hry2015/article/details/79078312 四 ...