KAFA架构及其基本概念
1.目标 - KAFA价格
在我们上一篇Kafka教程中,我们讨论了Kafka用例和应用程序。今天,在这个Kafka教程中,我们将讨论Kafka Architecture。在这篇Kafka Architecture文章中,我们将在Kafka中看到API。此外,我们将了解Kafka Broker,Kafka Consumer,Zookeeper和Kafka Producer。此外,我们将看到卡夫卡的一些基本概念。
那么,让我们开始Apache Kafka架构。
Apache Kafka架构及其基本概念
2. Kafka架构 - Apache Kafka API
Apache Kafka Architecture有四个核心API,生产者API,Consumer API,Streams API和Connector API。我们一个一个地讨论它们:
Kafka架构 - Apache Kafka API
一个。 制片人API
为了将记录流发布到一个或多个Kafka主题,Producer API 允许应用程序。
我们来讨论Kafka Security
湾 消费者API
此API允许应用程序订阅一个或多个主题,并处理为其生成的记录流。
C。 Streams API
此外,为了充当流处理器,消耗来自一个或多个主题的输入流并产生到一个或多个输出主题的输出流,有效地将输入流转换为输出流,流API允许应用。
d。 连接器API
在构建和运行将Kafka主题连接到现有应用程序或数据系统的可重用生产者或消费者时,我们使用Connector API。例如,关系数据库的连接器可能捕获对表的每个更改。
看看前5个Apache Kafka书籍。
3. Apache Kafka架构 - 集群
下图显示了Apache Kafka 的集群图:
卡夫卡建筑 - 卡夫卡集群
让我们描述上图中显示的Kafka Architecture的每个组件:
一个。卡夫卡 经纪人
基本上,为了维持负载平衡,Kafka集群通常由多个代理组成。但是,这些都是无状态的,因此为了维护集群状态,他们使用ZooKeeper。虽然,一个Kafka Broker实例每秒可以处理数十万次读写操作。然而,在没有性能影响的情况下,每个代理都可以处理TB消息。此外,确保ZooKeeper执行Kafka经纪人领导者选举。
点击链接了解有关Kafka Broker的更多信息
湾 卡夫卡 - ZooKeeper
出于管理和协调的目的,Kafka经纪人使用ZooKeeper。此外,使用它来通知生产者和消费者有关Kafka系统中任何新代理的存在或Kafka系统中代理的故障。一旦Zookeeper发送有关经纪人或生产者和消费者的存在或失败的通知,就做出决定并开始与其他经纪人协调他们的任务。
C。卡夫卡制片人
此外,卡夫卡的生产商将数据推送给经纪人。此外,所有生产者都会搜索它并自动向新代理发送消息,确切地说是新代理启动时。但是,请记住,Kafka生产者以经纪人可以处理的速度发送消息,它不会等待来自经纪人的确认。
d。卡夫卡消费者
基本上,通过使用分区偏移,Kafka Consumer维护消耗了多少消息,因为Kafka代理是无状态的。此外,一旦消费者确认特定的消息偏移,您就可以确保消费者已经消费了所有先前的消息。此外,为了使字节缓冲区准备好消费,消费者向代理发出异步拉取请求。然后,只需提供偏移值,消费者就可以倒带或跳转到分区中的任何位置。此外,ZooKeeper会通知消费者抵消价值。
4.卡夫卡建筑 - 基本概念
在这里,我们列出了您必须知道的Kafka架构的一些基本概念:
一个。卡夫卡 话题
主题是生产者发布消息并且消费者从中接收消息的逻辑通道。
- 主题定义了Kafka中特定类型/数据分类的流。
- 此外,这里的消息是结构化或组织的。在特定主题上发布特定类型的消息。
- 基本上,一开始,生产者将其消息写入主题。然后消费者从主题中读取这些消息。
- 在Kafka群集中,主题由其名称标识,并且必须是唯一的。
- 可以有任意数量的主题,没有限制。
- 一旦发布,我们就无法更改或更新数据。
使用命令阅读Apache Kafka Operations
下面是显示Kafka主题和分区之间关系的图像:
卡夫卡建筑 - 卡夫卡主题与分区之间的关系
湾 卡夫卡的分区
在Kafka群集中,主题分为多个分区,也可以跨代理进行复制。
- 但是,对于要写入已发布消息的分区,不能保证这一点。
- 此外,我们可以为邮件添加密钥。基本上,如果生产者发布带有密钥的消息,我们将确保所有这些消息(使用相同的密钥)将最终出现在同一分区中。由于此功能,Kafka提供消息排序保证。但是,除非添加密钥,否则数据会随机写入分区。
- 此外,在一个分区中,消息以顺序方式存储。
- 在分区中,为每条消息分配一个增量ID,也称为偏移量。
- 但是,仅在分区内,这些偏移才有意义。而且,在一个主题中,它在分区之间没有任何价值。
- 可以有任意数量的分区,没有限制。
C。Kafka中的主题复制因子
在设计Kafka系统时,将主题复制考虑在内是一个明智的决定。因此,如果经纪人倒闭,其主题来自其他经纪商的副本可以解决危机。例如,我们有3个经纪人和3个主题。Broker1有Topic 1和Partition 0,它的副本在Broker2中,依此类推。它的复制因子为2; 这意味着它将有一个额外的副本,而不是主要副本。下面是主题复制因子的图像:
让我们学习Apache Kafka Streams | 流处理拓扑
Kafka架构 - 主题复制因子
一些关键点 -
- 复制仅在分区级别进行。
- 对于给定的分区,一次只能有一个代理可以成为领导者。同时,其他经纪人将拥有同步复制品; 我们称之为ISR。
- 复制因子的数量不可能超过可用代理的数量。
d。消费者集团
- 它可以运行多个消费者进程/实例。
- 基本上,一个消费者群体将拥有一个唯一的群组ID。
- 此外,在读取时,恰好一个消费者实例从一个消费者组中的一个分区读取数据。
- 由于存在多个使用者组,在这种情况下,每个组中的一个实例可以从一个单独的分区读取。
- 但是,如果消费者数量超过分区数量,则会有一些不活跃的消费者。如果一个消费者群体中有8个消费者和6个分区,那么让我们通过一个例子理解它,这意味着将有2个不活跃的消费者。
阅读Apache Kafka + Spark Streaming Integration
所以,这就是Apache Kafka架构。希望你喜欢我们的解释。
5.结论:卡夫卡建筑
因此,我们已经看到了卡夫卡建筑的概念。此外,我们讨论了Kafka组件和基本概念。此外,我们还看到了一位简短的作家Kafka Broker,Consumer,Producer。与此同时,我们讨论了Kafka Architecture API。此外,有关卡夫卡建筑的任何疑问,请随时在评论部分询问。
另请参阅 -
Zookeeper在Kafka中的作用以
供参考
KAFA架构及其基本概念的更多相关文章
- (二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念
原文:(二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念 没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念. Rabbit ...
- .Net码农学Android---系统架构和基本概念
至此,你应该已经完成以下前期准备事情: 1.安装完JDK 2.安装完SDK(并在Manager中进行相关版本的更新) 3.相关IDE(如eclipse) 4.安装完ADT 5.安装完AVD(如果你是真 ...
- RabbitMQ消息队列(二)-RabbitMQ消息队列架构与基本概念
没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念. RabbitMQ架构 说是架构其实更像是应用场景下的架构(自己画的有点丑,勿嫌弃) 从图中 ...
- SOA面向服务架构——SOA的概念
SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”. 一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...
- nginx架构与基础概念
1 Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...
- RabbitMQ基本概念(二)-RabbitMQ消息队列架构与基本概念
没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念. RabbitMQ架构 说是架构其实更像是应用场景下的架构(自己画的有点丑,勿嫌弃) 从图中 ...
- SpringCloud升级之路2020.0.x版-16.Eureka架构和核心概念
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford Eureka 目前 ...
- tomcat架构之-----基本概念
一直都没有搞明白tomcat中server.service.Engine.Host.Context概念的意义,最近认真看了<Tomcat 6 Developer Guide>,有了进一步的 ...
- 简单记录下SpringCloud的微服务架构和一些概念
一.微服务的注册与发现——Eureka 和许多分布式设计一样,分布式的应用一般都会有一个服务中心,用于记录各个机器的信息.微服务架构也一样,我们把一个大的应用解耦成这么多个那么多个服务,那么在想要调用 ...
随机推荐
- Bias, Variance and the Trade-off
偏差,方差以及两者权衡 偏差是由模型简化的假设,使目标函数更容易学习. 一般来说,参数化算法有很高的偏差,使它们学习起来更快,更容易理解,但通常不那么灵活.反过来,它们在复杂问题上的预测性能更低,无法 ...
- 【洛谷P2664】 树上游戏 点分治
code: #include <bits/stdc++.h> #define N 200009 #define ll long long #define setIO(s) freopen( ...
- less简介及其编译原理
一.less环境安装 ①首先需要在电脑上安装nodejs,一般会内置npm,利用以下命令可以检测: ②利用npm在线安装less,运行 npm install –g less ③查看是否安装成功,L ...
- bootstrap轮播图组件
一.轮播图组件模板(官方文档) <div id="carousel-example-generic" class="carousel slide" dat ...
- fake_useragent 本地运行各种报错解决办法
- 洛谷 CF894A QAQ
目录 题目 思路 \(Code\) 题目 CF894A 思路 \(\text{DP}\) 一个数组\(\text{QAQ[4][101]}\) \(\text{QAQ[1][i]表示在i这个位置q的个 ...
- 这里是DDOSvoid的blog
由于博主已经退役,博客现由 @一扶苏一 代为维护. DDOSvoid 在生前退役前写下了大量的 blog 存在本地,现在由他的弟子 一扶苏一 整理编纂成为题单慢慢上传,是为<论语>< ...
- 每日Android一问等你来解答-什么是Activity的生命周期?
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 什么是Activity的生命周期? 生命周期: 对于生命周期我们 ...
- kafka 创建消费者报错
kafka-console-consumer.sh --zookeeper master:2181,slave1:2181,slave2:2181 --topic test --from-beginn ...
- 行业大秀:EasyEarth Show!
EasyEarth三维可视化地理信息云平台是由北京四维益友信息技术有限公司自主研发的新一代面向三维可视化应用领域的基础信息系统平台. EasyEarth以数据管理为核心,围绕7大类基础数据,提供综合管 ...