您现在的位置是:主页 > 数据库技术 > 数据库技术

Kafka的特点有哪些

IDCBT2022-01-12服务器技术人已围观

简介本文小编为大家详细介绍“Kafka的特点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka的特点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来

本文小编为大家详细介绍“Kafka的特点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka的特点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Kafka是啥?

Kafka是个集群的消息中间件+存储,一个节点可以存储几T的数据!

为啥一个中间件需要存储数据呢?

原来,对于Linkin这样的互联网企业来说,用户和网站上产生的数据有三种:

    需要实时响应的交易数据,用户提交一个表单,输入一段内容,这种数据最后是存放在关系数据库(Oracle, MySQL)中的,有些需要事务支持。

    活动流数据,准实时的,例如页面访问量、用户行为、搜索情况,这些数据可以产生啥?广播、排序、个性化推荐、运营监控等。这种数据一般是前端服务器先写文件,然后通过批量的方式把文件倒到Hadoop这种大数据分析器里面慢慢整。

    各个层面程序产生的日志,例如httpd的日志、tomcat的日志、其他各种程序产生的日志。码农专用,这种数据一个是用来监控报警,还有就是用来做分析。

Linkin的牛逼之处,就在于他们发现了原先2,3的数据处理方式有问题,对于2而言,原来动辄一两个钟头批处理一次的方式已经不行了,用户在一次购买完之后最好马上就能看到相关的推荐。而对于3而言,传统的syslog模式等也不好用,而且很多情况下2和3用的是同一批数据,只是数据消费者不一样。

这2种数据的特点是:

    准实时,不需要秒级响应,分钟级别即可。

    数据量巨大,是交易数据的10倍以上。

    数据消费者众多,例如评级、投票、排序、个性化推荐、安全、运营监控、程序监控、后期报表等

于是,Linkin就自己开发了一套系统,专门用来处理这种性质的数据,这就是Kafka

那么,在整个实践过程中Linkin做了什么样的设计,解决了什么问题?

首先看下数据流动图:

多数据中心怎么管理数据:

集群本身的架构图

Kafka内部架构图,分为数据产生者(Producer),数据中间者(Broker),数据消费者(Consumer)

显然,这是一个集群的发布/订阅系统,有如下几个特点

    生产者是推数据(Push),消费者是拉数据(Pull)。存在数据复用,在Linkin平均生产1条消息会被消费5.5次。

    数据生产者和数据消费者的速度不对等,所以要把数据沉淀在Kafka内慢慢处理,Linkin一般在集群内放7天的数据。

    性能上追求高吞吐,保证一定的延时性之内。这方面做了大量优化,包括没有全局hash,批量发送,跨数据中心压缩等等。

    容错性上使用的“至少传输一次”的语义。不保证强一次,但避免最多传一次的情况。

    标签:

    很赞哦! ()

本栏推荐