kafka介绍

news2025/2/27 3:06:31

1.kafka是什么

Kafka是一种高性能、可扩展、容错的分布式流处理平台,广泛应用于日志收集、实时数据处理、消息传递等场景所开发的一个消息队列中间件

2.kafka的优势

Kafka的优势在于其高吞吐量、可扩展性、容错性以及灵活的数据保留策略。它的高吞吐量是因为Kafka使用磁盘而不是内存来存储数据,这样可以避免在高负载情况下的内存压力。此外,Kafka的分布式架构使得它可以轻松地扩展到多个节点,从而实现高可用性和容错性。最后,Kafka的数据保留策略非常灵活,可以根据需要将数据保留一段时间或者保留到一定容量

3.kafka与rabbitmq的对比

设计目标:Kafka是为了处理高吞吐量、低延迟的数据流而设计的,主要用于日志收集、实时数据处理等场景。RabbitMQ则是为了处理消息传递和分发而设计的,主要用于异步消息传递、任务队列等场景

数据存储:Kafka使用分布式日志存储来存储数据,这种存储方式可以提供高吞吐量和可靠性。RabbitMQ则使用内存存储消息,可以提供低延迟的消息传递和高吞吐量的消息分发

消息传递方式:Kafka基于发布/订阅模式进行消息传递,支持批量发送和异步传输,可以处理大量的消息。RabbitMQ则支持多种消息传递模式,包括点对点、发布/订阅和RPC等,可以根据需要选择不同的模式

可靠性:Kafka具有很高的可靠性,可以实现数据的持久化和复制,可以保证消息不会丢失。RabbitMQ也具有很高的可靠性,可以实现消息的持久化和复制,可以保证消息不会丢失

扩展性:Kafka具有很好的扩展性,可以轻松地扩展到多个节点,从而实现高可用性和容错性。RabbitMQ也具有很好的扩展性,可以轻松地扩展到多个节点,从而实现高可用性和容错性

Kafka和RabbitMQ都是流行的消息中间件,它们的设计和应用场景有所不同。如果需要处理高吞吐量、低延迟的数据流,可以选择Kafka;如果需要处理消息传递和分发,可以选择RabbitMQ

4. 消息传递方式分析

点对点模式:点对点模式是一种基于队列的消息传递模式,其中消息生产者将消息发送到队列中,消息消费者从队列中获取消息并处理。在点对点模式中,每个消息只能被一个消费者消费,即一条消息只能被一个接收者消费,这种模式也被称为队列模式

发布订阅模式:发布订阅模式是一种基于主题的消息传递模式,其中消息生产者将消息发送到主题中,消息消费者从主题中获取消息并处理。在发布订阅模式中,每个消息可以被多个消费者消费,即一条消息可以被多个接收者消费,这种模式也被称为主题模式

5.Kafka的基本组成架构

Producer:生产者,负责将数据发布到Kafka集群中的一个或多个主题(Topic)

Consumer:消费者,从Kafka集群中的一个或多个主题中消费数据

Broker:Kafka集群中的一个或多个节点,负责接收来自生产者和消费者的数据,并将数据存储到磁盘上的日志文件中

Topic:数据的逻辑容器,每个主题都由一个或多个分区(Partition)组成,每个分区都有自己的日志文件

Partition:每个主题可分为多个分区,每个分区都是一个有序、不可变的消息序列

6.kafka集群的高可用分析

分布式架构:Kafka采用分布式架构,可以将多个节点组成一个集群,从而实现高可用性和容错性。每个节点都可以作为生产者和消费者,可以接收和发送消息,并且可以自动将消息分发到其他节点上

数据复制:Kafka使用数据复制来提高可用性和容错性。每个分区都可以配置多个副本,其中一个副本被称为“leader”,其他副本被称为“follower”。leader负责处理消息的读取和写入,而follower则复制leader的数据。如果leader出现故障,Kafka会自动将follower升级为leader

故障检测和自动恢复:Kafka集群具有故障检测和自动恢复功能,可以检测到节点或分区的故障,并自动将其恢复。如果一个节点或分区出现故障,Kafka会自动将其从集群中移除,并将其恢复到其他节点上

负载均衡:Kafka集群可以实现负载均衡,可以将消息均匀地分布到所有节点上,从而避免单点故障和性能瓶颈

监控和管理:Kafka集群需要进行监控和管理,以确保其正常运行。可以使用一些监控工具,如Kafka Manager、Kafka Monitor等,来监控Kafka集群的运行状态和性能指标

7.kafka内容分析

kafka所有的主题分区数据都存放在log目录下

snapshot为数据快照文件,log文件类似于MySQL的binlog日志

 topic id是每个主题的标识,只有集群中所有节点的topic id与zookeeper中存储的topic id一致这个主题才能正常使用

isr列表展示的是数据与leader节点一致的节点id,只有与leader节点数据一致才会在isr列表中,数据不一致则会将节点id剔除出isr列表,所以可以通过isr列表判断集群中的broker节点是否都数据一致

replicas列表展示的是改分区副本都分布在哪些节点上

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十一、Node.js

一、Node.js是什么? 在了解Node.js之前,我们先去了解一下什么叫v8引擎。这里参考一下其他博主的资料。 聊聊V8引擎_努力学习前端的77的博客-CSDN博客 这个时候我们再去看下Node.js的定义。 官方对Node.js的定义: Node.js是一个基于V8 Ja…

mysql优化-减少查询回表次数和回表数据量

减少数据回表常见的三种方式分别是1)查询条件使用聚集索引;2)使用索引下推;3)使用索引覆盖。 1 查询条件使用聚集索引-避免回表查询 按照索引使用数据结构B树叶子结点是否包含表中全部字段,mysql 索引可以…

“数字中国·福启海丝”多屏互动光影艺术秀27日在福州举办

作为深化“数字海丝”的核心区、海上丝绸之路的枢纽城市,为喜迎第六届数字中国建设峰会盛大召开之际,福州市人民政府特此举办“数字中国福启海丝”多屏互动光影秀活动。本次光影秀活动是由福建省文化和旅游厅指导,福州市人民政府主办&#xf…

USB转串口芯片CH9101U

CH9101是一个USB总线的转接芯片,实现USB转异步串口。提供了常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备或者MCU直接升级到USB总线。 特点 全速USB设备接口,兼容USB V2.0。内置固件,仿真标准串…

CH9121网络串口透传应用

概述 随着物联网技术的普及,越来越多的传统设备出现联网功能需求。串口作为使用较为广泛的一种通信接口,串口转以太网,进行远程数据传输需求逐渐显现出来。CH9121内部集成TCP/IP协议栈,无需编程,即可轻松实现网络数据…

撰写项目文档: 节省时间的技巧和模板

高质量的项目文档具有长期价值。它不仅有助于确保项目的成功,而且还可以作为未来项目和计划的参考! 项目文档是任何项目的脉搏,它连接了成功运行项目所需的一切。 文档必须足够宽泛,以便开发能够取得进展。但要足够灵活&#xf…

DAB-Deformable-DETR源码学习记录之模型构建(二)

书接上回,上篇博客中我们学习到了Encoder模块,接下来我们来学习Decoder模块其代码是如何实现的。 其实Deformable-DETR最大的创新在于其提出了可变形注意力模型以及多尺度融合模块: 其主要表现在Backbone模块以及self-attention核cross-atten…

平台+AI:全面拥抱大模型的商业创新,打造企业数字化「柔性供应链」 | D3演讲实录

马斯克曾说:“高生产率解决诸多问题。” 在社会化内卷的大环境下,借助数智化“降本增效”已是不争事实。AI技术日新月异、大量信息繁杂涌现,无数原来烟囱式的模式亟需变革,平台与AI之间怎样融合,才能发挥更大的功效&a…

深度学习量化总结(PTQ、QAT)

背景 目前神经网络在许多前沿领域的应用取得了较大进展,但经常会带来很高的计算成本,对内存带宽和算力要求高。另外降低神经网络的功率和时延在现代网络集成到边缘设备时也极其关键,在这些场景中模型推理具有严格的功率和计算要求。神经网络…

如何减少项目在Corona和V-Ray中的3ds Max渲染时间?

相信在大多 3D 项目里,渲染是最耗费时间的部分,它不仅是建模和纹理化 3D 场景的过程,而是需要利用硬件来完成任务。我们在配备独立GPU和带有2到4个强大内核的CPU的中档计算机上,可以将3ds Max中创建和处理的项目轻松渲染完成&…

MATLAB实现车牌识别

车牌识别主要包括三个主要步骤:车牌区域定位、车牌字符分割、车牌字符识别。 本项目通过对拍摄的车牌图像进行灰度变换、边缘检测、腐蚀及平滑等过程来进行车牌图像预处理,并由此得到一种基于车牌颜色纹理特征的车牌定位方法,最终实现了车牌…

在Docker上部署SpringBoot项目

在Docker上部署SpringBoot项目 在学习中发现了部署的时候总是有各种问题,此文章只有操作步骤没有原理解释,只是用来提醒自己部署步骤 第一步:将SpringBoot项目打包成jar包 使用idea打包,点一下就行 第二部:编写Dockerfile文件 新建一个名为Dockerfile的文件,注意没有后缀…

improper Integral反常积分

笔记 笔记二 例题 hyperlink

安陆EGS20 SDRAM仿真

目录 一. 搭建仿真平台 二. 实现SDRAM连续写入1024个数据,然后再连续读出,并比较 1. 调试过程中问题: 2. 顶层代码 3. 功能代码 三. SDRAMFIFO实现上述功能调试 1. 代码设计要点 2. 仿真过程问题 3. 上板运行调试 安陆反馈&#xf…

80%的人都关注的电子合同签署疑问,君子签官方解答来了!

电子合同签错了在平台可以撤回吗?如果合同上名字签错了,有法律效力吗?签的电子合同,内容会不会被别人看见?… 最近,小编将80%的人都关注的电子合同签署问题进行了整理,官方专业解答帮助大家更好…

mac真机调试h5攻略

原因: h5项目想在mac本通过chrome://inspect/#devices调试 (win上调试h5很简单,请参考:chrome真机调试Android_chrome 调试安卓_芒果终结者的博客-CSDN博客) 调试步骤: 1. 需要下载安装安卓开发工具and…

信息化发展

信息系统是:管理模型、信息处理模型和系统实现条件结合的 信息系统生命周期: 可行性分析与项目开发计划 需求分析 概要设计 详细设计 编码 测试 可以简化为: 系统规划:现行情况的分析,可行性研究报告 -> 设计任务…

Java笔记_13(集合进阶2)

Java笔记_13 一、双列集合1.1、Map的常见API1.2、Map遍历方式一(键找值)1.3、Map集合遍历方法二(键值对)1.4、Map集合遍历方法三(lambda表达式)1.5、HashMap1.6、HashMap练习1.7、HashMap底层源码解析1.7、…

12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

本文源自:量子位 只需12秒,只凭手机自己的算力,就能拿Stable Diffusion生成一张图像。 而且是完成了20次迭代的那种。 要知道,现在的扩散模型基本都超过了10亿参数,想要快速生成一张图片,要么基于云计算&…

Python 实现txt、excel、csv文件读写【附源码】

目录 前言 一、txt文件读写 二、excel文件读写 总结 前言 本文介绍使用Python进行文件读写操作,包括txt文件、excel文件(xlsx、xls、csv) 编译器使用的是PyCharm 一、txt文件读写 read() # 一次性读取全部内容readline() # 读取第一…