Kafka的诞生

Kafka最初是LinkedIn的一个内部基础设施系统。我们发现,虽然有很多数据库和系统可以用来存储数据,但在我们的架构里,刚好缺一个可以帮助处理持续数据流的组件。

我们希望能够把数据看成是持续变化和不断增长的流,并给予这样的想法构建出一个数据系统,事实上,是一个数据架构。

Kafka一开始被用在社交网络的实时应用和数据流当中,而现在已经成为下一代数据架构的基础。

Kafka充当的角色

Kafka是一个流平台,在这个平台上可以发布和订阅数据流,并把它们保存起来,进行处理,这就是构建Kafka的初衷。

Kafka有点像消息系统,允许发布和订阅消息流。从这点来看,它类似于ActiveMQ,RabbitMQ或IBM的MQSeries等产品。

尽管看上去有些相似,但Kafka与这些传统的消息系统仍然存在很多重要的不同点,这些差异使它完全不同于消息系统。

Kafka与传统消息系统

首先,作为一个现代的分布式系统,Kafka以集群的方式运行,可以自由伸缩,处理公司的所有应用程序。Kafka集群并不是一组独立运行的broker,而是一个可以灵活伸缩的中心平台,可以处理整个公司所有的数据流。

其次,Kafka可以按照要求存储数据,保存多久都可以。作为数据连接层,Kafka提供了数据传递保证--可复制,持久化,保留多长时间完全可以自行决定。

最后,流式处理将数据处理的层次提升到了新高度,消息系统只会传递消息,而Kafka的流式处理能力让你只用很少的代码就能够动态地处理派生流和数据集。

Kafka与Hadoop

Hadoop可以存储和定期处理大量的数据文件,而Kafka可以存储和持续处理大型的数据流。

从技术角度来看,它们有着惊人的相似之处,很多人将新兴的流式处理看成批处理的超集。

它们之间的最大不同体现在持续的低延迟处理和批处理之间的差异上。

Hadoop和大数据主要应用在数据分析上,而Kafka因其低延迟的特点更适合用在核心的业务应用上。

业务事件时刻在发生,Kafka能够及时对这些事件作出相应,基于Kafka构建的微服务直接为业务运营提供支撑,提升用户体验。

Kafka与数据集成工具

Kafka与ETL工具或其他数据集成工具之间也可以进行一番比较。

Kafka和这些工具都擅长移动数据,但我想它们最大的不同在于Kafka颠覆了传统的思维。Kafka并非只是把数据从一个系统拆解出来再塞进另一个系统,它其实是一个面向实时数据流的平台。也就是说,它不仅可以将现有的应用程序和数据系统连接起来,它还能用于加强这些触发相同数据流的应用。我们认为这种以数据流为中心的架构是非常重要的。在某种程度上说,这些数据流是现代数字科技公司的核心,与他们的现金流一样重要。

应用场景

用于时间驱动微服务系统的消息总线,流式应用和大规模数据管道。

Kafka--Kafka简述的更多相关文章

  1. [Kafka] - Kafka Java Consumer实现(一)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  2. [Spark][kafka]kafka 生产者,消费者 互动例子

    [Spark][kafka]kafka 生产者,消费者 互动例子 # pwd/usr/local/kafka_2.11-0.10.0.1/bin 创建topic:# ./kafka-topics.sh ...

  3. [Kafka] - Kafka Java Consumer实现(二)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  4. Zookeeper与Kafka Kafka

    Zookeeper与Kafka Kafka Kafka SocketServer是基于Java NIO开发的,采用了Reactor的模式(已被大量实践证明非常高效,在Netty和Mina中广泛使用). ...

  5. Kafka启动遇到ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)

    ------------恢复内容开始------------ Kafka启动遇到ERROR Exiting Kafka due to fatal exception (kafka.Kafka$) 解决 ...

  6. [Kafka] - Kafka基本概念介绍

    Kafka官方介绍:Kafka是一个分布式的流处理平台(0.10.x版本),在kafka0.8.x版本的时候,kafka主要是作为一个分布式的.可分区的.具有副本数的日志服务系统(Kafka™ is ...

  7. [Kafka] - Kafka 安装介绍

    Kafka是由LinkedIn公司开发的,之后贡献给Apache基金会,成为Apache的一个顶级项目,开发语言为Scala.提供了各种不同语言的API,具体参考Kafka的cwiki页面: Kafk ...

  8. [Kafka] - Kafka内核理解:Message

    一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成 header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成 ...

  9. [Kafka] - Kafka内核理解:消息的收集/消费机制

    一.Kafka数据收集机制 Kafka集群中由producer负责数据的产生,并发送到对应的Topic:Producer通过push的方式将数据发送到对应Topic的分区 Producer发送到Top ...

  10. [Kafka] - Kafka基本操作命令

    Kafka支持的基本命令位于${KAFKA_HOME}/bin文件夹中,主要是kafka-topics.sh命令:Kafka命令参考页面: kafka-0.8.x-帮助文档  -1. 查看帮助信息 b ...

随机推荐

  1. java问题 2019

    一.Java基础和高级 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.反射中,Class.forName和classloader的区别 4.sessio ...

  2. yolo系列目标检测+自标注数据集进行目标识别

    1. yolov1的识别原理 参考:https://blog.csdn.net/u010712012/article/details/85116365 https://blog.csdn.net/gb ...

  3. web前端面试第一次[addEventListenr();绑定事件]

    //当一个元素同时处理多个函数,这里使用按钮 //addEventListener(string类型,处理函数,boolean); <input type="button" ...

  4. SRSniffer抓包工具的使用

    1.打开SRSniffer软件 2.按照1-->2-->3依次点击 3.点击左侧的启动监听按钮 4.打开要记录api的软件,查看效果

  5. JSON传输图片帮助类

    JSON传输图片帮助类 2014-05-27 16:11:22|  分类: Java |  标签:解决方案  java  json  |举报|字号 订阅     原理:将图片转换为字节流,再将字节流用 ...

  6. 第1节 kafka消息队列:3、4、kafka的安装以及命令行的管理使用

    6.kafka的安装 5.1三台机器安装zookeeper 注意:安装zookeeper之前一定要确保三台机器时钟同步 */1 * * * * /usr/sbin/ntpdate us.pool.nt ...

  7. (2)LoraWAN:Lora LMIC library 编程模型及API

    二.LMIC library 编程模型及API LMiC库可以通过一组API函数(API functions),运行时函数(run-time functions),回调函数(callback func ...

  8. Spring事务原理分析-部分二

    Spring事务原理分析-部分二 说明:这是我在蚂蚁课堂学习了余老师Spring手写框架的课程的一些笔记,部分代码代码会用到余老师的课件代码.这不是广告,是我听了之后觉得很好. 课堂链接:Spring ...

  9. @Controller 和 @RestController 的区别

    @Controller和@RestController的区别? 官方文档:@RestController is a stereotype annotation that combines @Respo ...

  10. Vim学习1移动光标

    vim adventure上面做了大量练习,是个好软件只是需要收费 HJKLWBE 首先HJKL分别是移动上下左右的 H:光标左移 J:下移 K:上移 L:右移 W:跳转到下一个单词的第一个字,注意是 ...