kafka的初步认识

news2024/11/24 3:33:10

什么是Kafka?

Kafka的增长很快。财富500强企业中超过三分之一使用卡夫卡。这些公司包括十大旅游公司,十大银行中的七家,十大保险公司中的八家,十大电信公司中的九家,等等。LinkedIn,微软(Microsoft)和Netflix每天用Kafka处理一兆(1,000,000,000,000)的信息。Kafka用于实时数据流,收集大数据,或做实时分析(或两者兼而有之)。Kafka与内存中的微服务一起使用以提供耐用性,并且可以用于向CEP(复杂事件流式传输系统)和IoT / IFTTT式自动化系统提供事件。

##为什么选择Kafka?

Kafka通常用于实时流式数据体系结构以提供实时分析。由于Kafka是一个快速,可扩展,耐用和容错的发布、订阅消息传递系统,Kafka被用于JMS,RabbitMQ和AMQP可能因为数量和响应速度而不被考虑的情况。Kafka具有更高的吞吐量,可靠性和复制特性,使其适用于跟踪服务呼叫(跟踪每个呼叫)或跟踪传统MOM可能不被考虑的物联网传感器数据。

Kafka可以与Flume / Flafka,Spark Streaming,Storm,HBase,Flink和Spark一起工作,以实时接收,分析和处理流数据。Kafka是用于提供Hadoop的数据流。 Kafka代理支持在Hadoop或Spark中进行低延迟后续分析的大量消息流。此外,kalfka(一个子项目)可用于实时分析。

Kafka用例

简而言之,卡夫卡用于流处理,网站活动跟踪,度量收集和监控,日志聚合,实时分析,CEP,将数据导入到Spark中,将数据导入到Hadoop,CQRS,重播消息,错误恢复,并保证内存计算(微服务)的分布式提交日志。

谁使用Kafka?

许多处理大量数据的大公司使用Kafka。 LinkedIn起源于它,用它来跟踪活动数据和运营指标。Twitter使用它作为Storm的一部分来提供流处理基础设施。Square使用Kafka作为公共汽车,将所有系统事件转移到各种Square数据中心(日志,自定义事件,度量标准等),输出到Splunk,Graphite(仪表板)以及Esper-like / CEP警报系统。Spotify,Uber,Tumbler,Goldman Sachs,PayPal,Box,Cisco,CloudFlare和Netflix等公司也使用这种方法。

为什么Kafka如此受欢迎?

Kafka的操作简单。建立和使用Kafka后,很容易明白Kafka是如何工作的。 然而,Kafka很受欢迎的主要原因是它的出色表现。它是稳定的,提供可靠的持久性,具有灵活的发布 - 订阅/队列,可与N个消费者群体进行良好扩展,具有强大的复制功能,为制作者提供可调整的一致性保证,并在碎片级别提供保留排序(即Kafka 主题分区)。此外,Kafka可以很好地处理有数据流处理的系统,并使这些系统能够聚合,转换并加载到其他商店。 但是,如果Kafka速度缓慢,那么这些特点都不重要。 Kafka最受欢迎的原因是Kafka的出色表现。

为什么Kafka如此快?

Kafka非常依赖OS内核来快速移动数据。它依靠零拷贝的原则。Kafka使您能够将数据记录批量分块。这些批次的数据可以从生产者到文件系统(Kafka主题日志)到消费者端到端地看到。批处理允许更高效的数据压缩并减少I / O延迟。Kafka写入不可变的提交日志到磁盘顺序,从而避免随机磁盘访问和慢磁盘寻找。Kafka通过分片提供了横向扩展。它将一个主题日志分成数百个(可能是数千个)分区到数千个服务器。这个分解允许Kafka处理巨大的负载。

Kafka流媒体体系结构

Kafka最常用于将数据实时传输到其他系统。 Kafka是一个中间层,可以将您的实时数据管道解耦。Kafka

					*卡夫卡流式体系结构图*

复制

现在让我们真正回答这个大问题。

什么是Kafka?

Kafka是一个分布式流媒体平台,用于发布和订阅记录流。Kafka用于容错存储。 Kafka将主题日志分区复制到多个服务器。Kafka旨在让您的应用程序处理记录。Kafka速度很快,通过批处理和压缩记录来高效地使用IO。Kafka用于解耦数据流。Kafka用于将数据流式传输到数据湖,应用程序和实时流分析系统。

						*Kafka解耦数据流*

复制

Kafka是多面手

来自客户端和服务器的Kafka通信使用基于TCP的有线协议进行版本化和记录。Kafka承诺保持与老客户的向后兼容性,支持多种语言。有C#,Java,C,Python,Ruby等多种语言的客户端。Kafka生态系统还提供了REST代理,可以通过HTTP和JSON轻松集成,从而使集成变得更加简单。Avro和架构注册表允许客户以多种编程语言制作和读取复杂的记录,并允许记录的演变。Kafka是真正的多面手。

Kafka很有用

Kafka允许您构建实时流数据管道。

您可以使用Kafka来帮助收集指标/关键绩效指标,汇总来自多个来源的统计信息,并实施事件采购。您可以将其与微服务(内存)和参与者系统一起使用,以实现内存中服务(分布式系统的外部提交日志)。

您可以使用Kafka在节点之间复制数据,为节点重新同步以及恢复状态。虽然Kafka主要用于实时数据分析和流处理,但您也可以将其用于日志聚合,消息传递,点击流跟踪,审计跟踪等等。

在这个数据科学和分析是一个大问题的世界里,捕获数据到数据湖和实时分析系统也是一件大事。而且由于Kafka可以承受这种剧烈的使用情况,Kafka是一个大成就。

Kafka有可扩展的消息存储

Kafka是一个很好的记录/信息存储系统。Kafka就像提交日志存储和复制的高速文件系统一样。这些特点使Kafka适用于各种应用场合。写入Kafka主题的记录会持久保存到磁盘并复制到其他服务器以实现容错。由于现代硬盘速度很快,而且相当大,所以这种硬盘非常适合,非常有用。Kafka生产者可以等待确认,直到该消息复制,信息会一直显示为制片人不完整。Kafka磁盘结构可以很好地扩展。现代磁盘驱动器在以大批量流式写入时具有非常高的吞吐量。此外,Kafka客户和消费者可以控制读取位置(偏移量),这允许在重要错误(即修复错误和重放)时重播日志等用例。而且,由于每个消费者群体都会跟踪偏移量,所以我们在这篇Kafka架构文章中提到,消费者可以非常灵活(即重放日志)。

Kafka有记录保留

Kafka集群保留所有公布的记录。如果您没有设置限制,它将保留记录,直到磁盘空间不足。例如,您可以设置三天或两周或一个月的保留策略。主题日志中的记录可供消耗,直到被时间,大小或压缩丢弃为止。消费速度不受Kafka的大小影响,总是写在主题日志的末尾。

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

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

相关文章

【CV 向】如何打造一个“数串串神器“

导言 最近,我看到了这样一个视频,觉得很有意思,就随手保存下来了。😁😁😁 之前吃串串火锅,老板数竹签不是称重就是用手慢慢数,但是称重似乎总是得不到正确的竹签数目,而…

C++技能系列 ( 7 ) - 右值引用、移动语意、完美转发

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 右值引用、移动语意、完美转发 1、右值引用2、完美转发 1、右值引用 右值引用(rvalue refe…

Redux的纯函数、中间件

当我们的应用随着业务的发展,变得越来越复杂的时候,组件之间的状态也是越来越复杂。 reducer函数 之前说过redux中的action,是用来描述一种变化。但是完成变化并且生辰新的数据数据状态的是reducer方法。 reducer方法,必须是纯…

SQL注入攻击与防护

目录 一、SQL注入攻击概述 1.1 SQL注入概念 1.1.1 标准查询过程 1.1.2 SQL注入定义 1.2 SQL注入根本原因 1.3 SQL注入条件 1.4 SQL注入防范 1.4.1 根本原因:过滤不严 1.4.2 安全设计原则:数据与代码分离 1.5 SQL注入流程 1.6 SQL注入分类 1.…

vue3+vite+ts项目配置开发环境和生产环境 打包命令配置

开发环境和生产环境的配置和打包方式有所不同,下面是基于vue3vitets项目的开发环境和生产环境配置及打包方式的详细说明。 开发环境配置 开发环境的配置主要是为了方便开发者进行调试和测试,以下是开发环境的配置步骤: 1.1 安装依赖 首先…

DAY27:回溯算法(二)组合问题及其优化

文章目录 77.组合(一定要注意逻辑问题)思路for循环嵌套的情况回溯算法模拟for循环K层嵌套 回溯法步骤伪代码完整版debug测试逻辑问题:没有输出逻辑问题:为什么是递归传入i1而不是startIndex1?重要:为什么会…

Java-API简析_java.lang.CharSequence接口(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131318474 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

Unreal 5 实现场景

如果你拿到了一个新的场景,想将此场景应用到游戏当中,首先需要给敌人增加ai移动路径,需要添加导航体积 添加导航模型包围体积 添加了体积以后,设置包围盒的大小,将敌人可以行进的区域给区分出来,然后按键盘…

PyCharm2023开发工具activice教程(包含工具link)

PyCharm2023 前言1. 下载工具2. 选择安装方法33. 填入active code4. 效果如下 前言 PyCharm是一款由JetBrains开发的强大的Python集成开发环境(IDE)。它提供了丰富的功能和工具,旨在提高Python开发者的生产力和效率。 以下是PyCharm的一些主…

Linux操作系统体系结构 ( 3 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

FTP服务器

文章目录 FTP服务器FTP的数据传输原理FTP的功能简介不同等级的用户身份命令记录与日志文件记录限制用户活动的目录 FTP的工作流程与使用到的端口FTP主动式连接FTP被动式连接 vsftpd服务器基础设置为什么使用vsftpd所需要的软件以及软件结构vsftpd.conf 配置值说明与服务器环境比…

【入门向】CV 小白如何入门?人脸识别教程带你学习计算机视觉

导言 计算机视觉作为人工智能领域的一个重要分支,旨在让计算机能够理解和解释图像和视频数据。而OpenCV作为一款开源的计算机视觉库,为开发者提供了丰富的工具和函数,用于处理图像、视频、对象检测、特征提取等任务。对于初学者来说&#xf…

chatgpt赋能python:如何在Python中捕获kill信号

如何在Python中捕获kill信号 在编写Python代码时,我们可能需要处理一些长时间运行的进程。有时候,我们会在运行这些进程时使用kill命令杀死它们。然而,Python进程是否可以捕获kill信号呢?答案是肯定的。 在本文中,我…

基于pyqt5、mysql、yolov7、chatgpt的小麦病害检测系统v1.0

基于pyqt5、mysql、yolov7、chatgpt的小麦病害检测系统设计与实现 一、界面设计1.1安装pyqt51.2创建用户子窗体1.3创建管理员主窗体1.4创建管理员子窗体1.5创建系统登陆界面 二、环境搭建2.1pyqt5工具配置2.2mysql5.7安装 三、编程实现3.1初始化数据库3.2创建用户数据库sdk文件…

chatgpt赋能python:Python如何快速提取指定行和列的数据?

Python如何快速提取指定行和列的数据? 在进行数据分析和处理时,常常需要从海量数据中筛选出所需的数据。这时,Python是一款非常强大的工具,可以方便地进行大规模数据清洗和筛选。本文将介绍如何使用Python快速提取指定行和列的数…

【JVM篇】手撸上万字带你吃透“垃圾回收”

前言:大家好,我是TwosJel,一名21级的本科生(*^▽^*),最近二刷了《深入理解Java虚拟机》,因此想写一篇关于垃圾回收的随笔,于是便有了这篇文章❥(^_-)。 个人主页:TwosJel 个人介绍&#xff1a…

JWT --- 入门学习

1.常见的认证机制 basic auth : 每次请求都会携带用户的username,password,易被黑客拦截。 Cookie auth : 我们请求服务器,创建一个session对象,客户端创建cookie对象。客户端每次访问,携带cookie对象。 (在当今&…

chatgpt赋能python:Python排队:提高效率、优化流程的神器

Python排队:提高效率、优化流程的神器 随着科技的不断进步,排队已经成为了现代生活中不可避免的一部分。在各个行业中,排队都是必须考虑的问题,包括餐馆、医院、机场和银行等等。针对排队问题,我们可以使用Python编程…

使用Vue + FormData + axios实现图片上传功能实战

前言 上节回顾 上一小节中,我们添加了Vue-router的路有数据,这些数据都将是后续实战课程中的真实路由数据了。同时引入了ElementUI的el-menu做为左侧菜单的组件,但本专栏的特点就是遇到第三方功能和组件,自己尽量也要实现一遍&a…

蓝牙ATT协议介绍

介绍 ATT,Attribute Protocol,用于发现、读、写对端设备的协议(针对BLE设备) ATT允许蓝牙远程设备(比如遥控器)作为服务端提供拥有关联值的属性集,让作为客户端的设备(比如手机、电视)来发现、…