教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

什么是Kafka?Kafka诞生的背景是什么?

更新时间:2021年10月06日10时59分 来源:传智教育 浏览次数:

Kafka是由Apache软件基金会开发的一个开源流平台,由Scala和Java编写。Kafka的Apache官网是这样介绍Kakfa的。
Apache Kafka是一个分布式流平台。一个分布式的流平台应该包含3点关键的能力:
1. 发布和订阅流数据流,类似于消息队列或者是企业消息传递系统
2. 以容错的持久化方式存储数据流
处理数据流

英文原版

 Publish and subscribe to streams of records, similar to a message queue or enterprise 
messaging system.
 Store streams of records in a fault-tolerant durable way.
 Process streams of records as they occur.
更多请参考:http://kafka.apache.org/documentation/#introduction
什么是Kafka

我们重点关键三个部分的关键词:
1. Publish and su·bscribe:发布与订阅
2. Store:存储
3. Process:处理

我们通常将Apache Kafka用在两类程序:
1. 建立实时数据管道,以可靠地在系统或应用程序之间获取数据
2. 构建实时流应用程序,以转换或响应数据流
什么是Kafka
上图,我们可以看到:
1. Producers:可以有很多的应用程序,将消息数据放入到Kafka集群中。
2. Consumers:可以有很多的应用程序,将消息数据从Kafka集群中拉取出来。
3. Connectors:Kafka的连接器可以将数据库中的数据导入到Kafka,也可以将Kafka的数据导出到数据库中。
4. Stream Processors:流处理器可以Kafka中拉取数据,也可以将数据写入到Kafka中。


Kafka诞生背景:kafka的诞生,是为了解决linkedin的数据管道问题,起初linkedin采用了ActiveMQ来进行数据交换,大约是在2010年前后,那时的ActiveMQ还远远无法满足linkedin对数据传递系统的要求,经常由于各种缺陷而导致消息阻塞或者服务无法正常访问,为了能够解决这个问题,linkedin决定研发自己的消息传递系统,当时linkedin的首席架构师jaykreps便开始组织团队进行消息传递系统的研发。
提示:
1. Linkedin还是挺牛逼的
Kafka比ActiveMQ牛逼得多

前面我们了解到,消息队列中间件有很多,为什么我们要选择Kafka?

特性

ActiveMQ

RabbitMQ

Kafka

RocketMQ

所属社区/公司

Apache

Mozilla Public License

Apache

Apache/Ali

成熟度

成熟

成熟

成熟

比较成熟

生产者-消费者模式

支持

支持

支持

支持

发布-订阅

支持

支持

支持

支持

REQUEST-REPLY

支持

支持

-

支持

API完备性

低(静态配置)

多语言支持

支持JAVA优先

语言无关

支持,JAVA优先

支持

单机呑吐量

万级(最差)

万级

十万级

万级(最高)

消息延迟

-

微秒级

毫秒级

-

可用性

高(主从)

高(主从)

非常高(分布式)

消息丢失

-

理论上不会丢失

-

消息重复

-

可控制

理论上会有重复

-

事务

支持

不支持

支持

支持

文档的完备性

提供快速入门

首次部署难度

-


在大数据技术领域,一些重要的组件、框架都支持Apache Kafka,不论成成熟度、社区、性能、可靠性,Kafka都是非常有竞争力的一款产品。综上,Kafka是一款非常优秀的平台,那么都有哪些公司在使用Kafka呢?

什么是Kafka







猜你喜欢:

什么是Apache Kafka?

Kafka的常用API介绍[大数据培训]

为什么选择kafka采集数据?

Kafka基准测试怎样进行?

传智教育python大数据开发培训

0 分享到:
和我们在线交谈!