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 和许多分布式设计一样,分布式的应用一般都会有一个服务中心,用于记录各个机器的信息.微服务架构也一样,我们把一个大的应用解耦成这么多个那么多个服务,那么在想要调用 ...
随机推荐
- How to Close Frozen Applications in macOS
How to Close Frozen Applications in macOS By Zeeshan Akram - February 18, 2019 0 436 Oftenly, y ...
- prisma 已经支持mongodb了
好久没有关注prisma 的版本迭代了,记得在去年12月份左右的时候,mongodb 在github 上还只是一个草案, 官方文档也没有相关的详细介绍,今天留意了下,居然已经支持了,还是很给力的(my ...
- linux下递归删除目录下所有exe文件---从删库到跑路篇
linux下递归删除目录下所有exe文件 find . -name '*.exe' -type f -print -exec rm -rf {} \; (1) "." 表示从当前目 ...
- (浙江金华)Day 1 组合数计数
目录 Day 1 组合计数 1.组合数 (1).C(n,m) 读作n选m,二项式系数 : (2).n个东西里选m个的方案数 不关心选的顺序: (3).二项式系数--->多项式系数: 2.组合数计 ...
- HTML5之图片在Retina屏的常用几种处理方式
Media Queries使用css3的媒体查询实现高清屏的图片处理. @media only screen and (-webkit-min-device-pixel-ratio: 1.5), on ...
- HAProxy+Keepalived高可用负载均衡
一 基础准备 1.1 部署环境及说明 系统OS:CentOS 6.8 64位 HAProxy软件:HA-Proxy version 1.5.18 Keepalived软件:keepalived-1.3 ...
- 还在用难用的AssetBundle?快来运用Unity新的可寻址资源系统,助力游戏开发
Unity Addressables可寻址资源系统是一个强大的Unity资源包,它能够帮助解决游戏开发中最重要的一些挑战:高效率和轻松的内容管理. 在管理游戏资源时,往往很难维持好的标准,从而避免让项 ...
- ipv4的TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)
1 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 2 3 其中,对于我们日常的分析有用的就是前面的五个字段. 4 5 它们的含义是 ...
- em,rem,px的区别,以及实现原理?
px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.em是相对长度单位.相对于当前对象内文本的字体尺寸举个例子:比如说当前容器`font-size:16px;`则`1em`就 ...
- semi-join子查询优化 -- FirstMatch策略
FirstMatch执行semi-join子查询的一种策略. 类似于MySQL 5.x中如何执行in.exists子查询. 让我们以搜索拥有大城市的国家为例: select * from Countr ...