内容简介:Kafka作为大数据最核心的技术,作为一名技术开发人员,如果你不懂,那么就真的“out”了。DT时代的快速发展离不开kafka,所以了解kafka,应用kafka就成为一种必须。什么是kafka?Kafka是一个分布式流平台,用于发布和订阅记录流。Kafka可以用于容错存储。Kafka将主题日志分区复制到多个服务器。Kafka的设计目的是为了让你的应用能在记录生成后立即就能处理。Kafka的处理速度很快,通过批处理和压缩记录有效地使用IO。Kafka会对数据流进行解耦。Kafka用于将数据流到数据湖、应用和
Kafka作为大数据最核心的技术,作为一名技术开发人员,如果你不懂,那么就真的“out”了。DT时代的快速发展离不开kafka,所以了解kafka,应用kafka就成为一种必须。
什么是kafka?Kafka是一个分布式流平台,用于发布和订阅记录流。Kafka可以用于容错存储。Kafka将主题日志分区复制到多个服务器。Kafka的设计目的是为了让你的应用能在记录生成后立即就能处理。Kafka的处理速度很快,通过批处理和压缩记录有效地使用IO。Kafka会对数据流进行解耦。Kafka用于将数据流到数据湖、应用和实时流分析系统中。Kafka主要应用于实时信息流的大数据收集或者实时分析(或者两者兼有)。Kafka既可以为内存微服务提供持久性服务,也可以用于向复杂事件流系统和IoT/IFTTT式自动化系统反馈事件。
目前,世界500强企业有三分之一都在使用kafka,而使其如此流行的原因有以下几点:
其一、kafka速度快。
Kafka基于zero copy原则,深度依靠操作系统内核实现快速移动数据,能将数据记录分批处理。这些批次数据可以通过端到端的方式从生产者到文件系统(Kafka主题日志)再到消费者。批处理能实现更高效的数据压缩并减少I / O延迟。Kafka将不可变的提交日志写入连续磁盘,从而避免了随机磁盘访问和磁盘寻道速度慢的问题。Kafka支持增加分区进行横向扩展。它将主题日志分成几百个(可能有数千个)分区分布到数千个服务器。这种方式可以让Kafka承载海量负载。
其二、Kafka支持多语言
客户端和服务器之间的Kafka通信使用基于TCP的线路协议,该协议是版本化和文档化的。Kafka承诺保持对老客户端的向后兼容性,并支持多种语言,包括C#,Java,C,Python,Ruby等多种语言。Kafka生态系统还提供REST代理,可通过HTTP和JSON轻松集成。Kafka还通过Kafka的融合模式注册(ConfluentSchema Registry)支持Avro模式。Avro和模式注册允许客户以多种编程语言制作和读取复杂的记录,并允许记录的变化。
其三、kafka应用广泛
Kafka支持构建实时流数据管道,支持内存微服务(比如actors,Akka,Baratine.io,QBit,reactors,reactive,,Vert.x,RxJava,SpringReactor),支持构建实时流应用程序,进行实时数据分析,转换,响应,聚合、加入实时数据流以及执行CEP。
其四、Kafka可扩展的消息存储
Kafka是一个很好的记录或信息存储系统。Kafka就像一个提交日志存储和复制的高速文件系统。这些特点使Kafka适用于各种应用场合。写入Kafka主题的记录会持久保存到磁盘并复制到其他服务器以实现容错。由于现在磁盘速度快而且相当大,所以这种方式非常有用。Kafka生产者可以等待确认,所以消息是持久的,因为生产者在复制完成之前不会完成写入操作。Kafka磁盘结构可以很好地扩展。磁盘在大批量流式传输时具有非常高的吞吐量。此外,Kafka客户端和消费者可以控制读取位置(偏移量),这允许在出现重要错误(即修复错误和重放)时重播日志等用例。而且,由于偏移量是按照每个消费者群体进行跟踪的,所以消费者可以非常灵活地重播日志。
Kafka可以让合适的数据以合适的形式出现在合适的地方。Kafka的做法是提供消息队列,让生产者单往队列的末尾添加数据,让多个消费者从队列里面依次读取数据然后自行处理。如此便捷的模式,必然使得kafka在各个领域的应用不断的加强。
DT时代,对于kafka的应用将不断的深入,未来不仅仅是世界500强企业会用到kafka,任何一个企业都将使用这一便捷的 工具 来实现大数据的布局。技术总是在不断的更新和发展,kafka也在不断的更细迭代,相信,未来企业的大数据布局,必将因kafka而更加便捷。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 打响2019储能第一枪!科华恒盛作为PCS核心供应商助力甘肃720MWh储能电站
- 使用Elasticsearch作为主数据存储
- 如何把MongoDB作为循环队列
- 使用 utterances 作为博客评论组件
- 作为项目经理应该串联起哪些流程
- 作为产品经理,如何做好项目管理?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能网站建设指南(第二版)
Steve Souders / 刘彦博 / 电子工业出版社 / 2015-5 / 55.00元
《高性能网站建设指南:前端工程师技能精髓》结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南:前端工程师技能精髓》中,作者给出了14条具体的优化......一起来看看 《高性能网站建设指南(第二版)》 这本书的介绍吧!