您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

程序员基础解答:什么是Kafka?

时间:2020-04-29 14:24:51  来源:  作者:

Kafka的成长正在蹦沙卡拉卡!

在《财富》 500强公司中,超过三分之一的公司使用Kafka。这些公司包括排名前十的旅行社,排名前十的银行中有七个,排名前十的保险公司中有八个,排名前十的电信公司中有九个,等等。LinkedIn,Microsoft和Netflix每天使用Kafka(1,000,000,000,000)处理消息。国内腾讯、阿里、特别是支付宝等,都大量在用。

Kafka用于实时数据流,收集大数据或进行实时分析。Kafka与内存中的微服务一起使用,提供持久性,并且可以将事件馈送到CEP(复杂事件流系统)和IoT / IFTTT风格的自动化系统。

为什么选择Kafka?

Kafka通常用于实时流数据架构中以提供实时分析。由于Kafka是一种快速,可伸缩,持久且具有容错能力的发布系统,因此Kafka用于JMS、RabbitMQ和AMQP的用例中。

Kafka具有更高的吞吐量,可靠性和复制特性,这使其可用于跟踪服务呼叫或跟踪可能不考虑传统MOM的IoT传感器数据之类的事。

Kafka可以与Flume / Flafka,Spark Streaming,Storm,HBase,Flink和Spark一起使用,以实时提取,分析和处理流数据。也是用于送Hadoop BigData的数据流。同时它还代理支持大量消息流,以便在Hadoop或Spark中进行低延迟的后续分析。此外,Kafka Streams(一个子项目)也可以用于实时分析。

Kafka用例

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

谁使用Kafka?

许多处理大量数据的大公司都使用Kafka。起源于LinkedIn的LinkedIn用来跟踪活动数据和运营指标。Twitter将其用作Storm的一部分,以提供流处理基础结构。Square使用Kafka作为总线,将所有系统事件移至各个Square数据中心(日志,自定义事件,指标等),向Splunk输出,用于Graphite(仪表板),并实现类似Esper/CEP警报系统。

国外Spotify,Uber,Tumbler,Goldman Sachs,PayPal,Box,Cisco,CloudFlare和Netflix等其他公司也都会使用它。

程序员基础解答:什么是Kafka?

 

为什么Kafka如此受欢迎?

Kafka具有操作简便性。Kafka易于设置和使用,并且很容易弄清楚Kafka是如何工作的。但是,Kafka受欢迎的主要原因是其出色的性能。它稳定,提供可靠的耐用性,具有灵活的发布/队列,可以很好地适应N个消费者组,具有强大的复制能力,为生产者提供可调的一致性保证,并且可以在分片级别(即Kafka)提供保留的订购主题分区)。

此外,Kafka可以与需要处理数据流的系统配合使用,并使这些系统能够聚合,转换并加载到其他商店中。但是,如果Kafka慢一点,那么这些特征都将无关紧要。

为什么Kafka这么快?

Kafka非常依赖OS内核来快速移动数据。它依赖零复制的原理 。通过Kafka,可以将数据记录分批处理。从生产者——文件系统(Kafka主题日志)——消费者这条路径中,可以端对端地查看这些批次的数据。

批处理允许更有效的数据压缩并减少I / O延迟。Kafka将不可变的提交日志顺序写入磁盘,从而避免了随机磁盘访问和缓慢的磁盘搜索。并通过分片提供水平缩放。它会将主题日志分片到数百个(可能是数千个)分区中,成千上万个服务器。这种分片使Kafka可以处理大量负载。

Kafka:流式架构

Kafka最常用于将数据实时流式传输到其他系统中。Kafka是中间层,用于分离实时数据管道。

Kafka核心不适用于直接计算,例如数据聚合或CEP。Kafka流是Kafka生态系统的一部分,提供了进行实时分析的功能。

Kafka可用于为Storm,Flink,Spark流以及您的服务和CEP系统等快速通道系统(实时和操作数据系统)提供数据。还用于流数据以进行批处理数据分析。Kafka支持Hadoop。它将数据流式传输到大数据平台或RDBMS,Cassandra,Spark甚至S3中,以进行将来的数据分析。这些数据存储通常支持数据分析,报告,数据科学处理,合规性审核和备份。

程序员基础解答:什么是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轻松集成,这使得集成更加容易。

Kafka还通过Confluent Schema Registry for Kafka支持Avro模式。Avro和Schema Registry允许客户端以多种编程语言生成和读取复杂的记录,并允许记录的演变。因此它是真正的多语种。

Kafka很有用

Kafka允许构建实时流数据管道。Kafka支持内存中的微服务(即actor,Akka, Baratine.io,QBit,reactor,reactive,Vert.x,RxJava和Spring Reactor)。Kafka允许构建对流做出反应的实时流应用程序,以进行实时数据分析,转换,反应,聚合,加入实时数据流,以及执行 CEP(复杂事件处理)。

  • 我们可以使用Kafka来帮助收集指标/ KPI,汇总来自许多来源的统计信息以及实施事件源。
  • 可以将其与微服务(内存中)和参与者系统一起使用以实现内存服务(分布式系统的外部提交日志)。
  • 可以使用Kafka在节点之间复制数据,为节点重新同步以及恢复状态。尽管Kafka主要用于实时数据分析和流处理,但也可以将其用于日志聚合,消息传递,点击流跟踪,审计跟踪等。

在数据科学和分析非常重要的世界中,捕获数据以馈入数据湖和实时分析系统也 很重要。而且由于Kafka可以承受这些特别复杂的用例,因此Kafka至关重要。

Kafka是可伸缩的消息存储

Kafka是一个很好的记录/消息存储系统。Kafka就像高速文件系统一样,用于提交日志的存储和复制。这些特性使Kafka可用于各种应用程序。

写入Kafka主题的记录将保存到磁盘,并复制到其他服务器以实现容错。由于现代驱动器速度快且体积很大,因此非常适合并且非常有用。Kafka生产者可以等待确认,因此消息是持久的,因为在消息复制之前生产者的操作不会完成。Kafka磁盘结构可伸缩。当批量写入大量流时,现代磁盘驱动器具有很高的吞吐量。

同样,Kafka的客户和消费者可以控制读取位置(偏移量),这允许使用案例,例如,如果存在严重错误(例如,修复错误和重新播放),则重播日志。

Kafka的保留纪录

Kafka集群保留所有已发布的记录。如果未设置限制,它将保留记录,直到磁盘空间用完为止。您可以设置基于时间的限制(可配置的保留期限),基于大小的限制(可根据大小配置)或压缩(使用键保留最新的记录版本)。例如,您可以将保留策略设置为三天或两周或一个月。可以使用主题日志中的记录,直到按时间,大小或压缩将其丢弃。消耗速度不受大小影响,因为Kafka始终写入主题日志的末尾。



Tags:程序员   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
我 2010 年开始在 Github 上开源自己的代码。在 push 代码之前我根本没想过为什么。只是因为我当时学了 git,而且我又觉得 Github 很方便,可以用来备份自己的代码。而后我就参...【详细内容】
2021-12-28  Tags: 程序员  点击:(2)  评论:(0)  加入收藏
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  Tags: 程序员  点击:(2)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  Tags: 程序员  点击:(9)  评论:(0)  加入收藏
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  Tags: 程序员  点击:(18)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  Tags: 程序员  点击:(21)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03  Tags: 程序员  点击:(16)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  Tags: 程序员  点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  Tags: 程序员  点击:(15)  评论:(0)  加入收藏
序言:前段时间织梦因为版权的问题在网上闹得沸沸扬扬,也提醒了众多开发者选择cms上应该谨慎使用,今天给大家展示一款自己搭建的内容管理系统,不用担心版权的问题,而且非常容易维...【详细内容】
2021-11-30  Tags: 程序员  点击:(34)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  Tags: 程序员  点击:(42)  评论:(0)  加入收藏
▌简易百科推荐
我 2010 年开始在 Github 上开源自己的代码。在 push 代码之前我根本没想过为什么。只是因为我当时学了 git,而且我又觉得 Github 很方便,可以用来备份自己的代码。而后我就参...【详细内容】
2021-12-28  程序员的喵    Tags:Github   点击:(2)  评论:(0)  加入收藏
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  just do丶IT公众号    Tags:国企   点击:(2)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  博士聊IT    Tags:程序员   点击:(9)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03    财经杂志  Tags:程序员   点击:(16)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  云南贤哥在深圳    Tags:程序员   点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  findyi    Tags:程序员   点击:(15)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  郭主任    Tags:程序员   点击:(42)  评论:(0)  加入收藏
即使在安全技术取得进步之后,网络犯罪仍在不断增加。据统计,网络犯罪每分钟给企业造成约 290 万美元的损失。主要是因为新技术不断涌现,难以维护安全。随着网络威胁的增加,网络...【详细内容】
2021-11-04  章大千    Tags:编程语言   点击:(40)  评论:(0)  加入收藏
北漂小伙李强(化名),在北京互联网大厂工作7年,月薪3万,离职回老家开摄影店,亏了200万。李强出生于山西一座名不经传的小城市,互联网专业大学毕业的他,没有听父母的劝言回到家乡考公...【详细内容】
2021-10-29  霸王课  今日头条  Tags:程序员   点击:(53)  评论:(0)  加入收藏
程序员是青春饭,这在国内似乎是公认的。所以很多公司不愿招大龄程序员,很多程序员也“知趣”地及早转型。有的做管理,有的做架构,我还见过改行卖保险的。总之,年龄大了不想敲代码...【详细内容】
2021-10-27  编程的艺术    Tags:   点击:(30)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条