Kafka作为大数据的核心技术,你了解多少?

大数据 Kafka
Kafka作为大数据最核心的技术,作为一名技术开发人员,如果你不懂,那么就真的“out”了。DT时代的快速发展离不开kafka,所以了解kafka,应用kafka就成为一种必须。

Kafka作为大数据最核心的技术,作为一名技术开发人员,如果你不懂,那么就真的“out”了。DT时代的快速发展离不开kafka,所以了解kafka,应用kafka就成为一种必须。

[[264189]]

什么是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-03-05 14:57:21

大数据Hadoop框架

2017-05-26 18:30:34

华为

2017-08-16 10:21:36

大数据数据分析核心技术

2017-04-06 12:43:48

2011-04-28 15:27:20

激光打印LED打印

2020-12-10 11:00:37

JavaJVM命令

2019-07-01 15:34:39

人工智能技术机器人

2019-04-30 13:54:55

大数据Hadoop数据清洗

2021-07-18 10:40:53

大数据大数据技术

2022-08-31 12:48:34

腾讯大数据

2017-04-26 23:10:03

数据组织数据库

2020-12-11 13:27:12

大数据大数据技术

2018-05-08 14:35:03

大数据数据处理存储

2022-08-01 08:37:45

Java池化缓存

2018-01-02 09:31:12

大数据数据互联网

2018-01-16 10:49:52

区块链核心技术

2009-06-26 16:01:39

EJB组织开发EJB容器EJB

2022-05-07 14:31:46

物联网

2013-08-09 17:14:36

桌面虚拟化

2021-07-28 07:53:20

C#.NET设计
点赞
收藏

51CTO技术栈公众号