千家信息网

Kafka的特点有哪些

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文小编为大家详细介绍"Kafka的特点有哪些",内容详细,步骤清晰,细节处理妥当,希望这篇"Kafka的特点有哪些"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Kafka
千家信息网最后更新 2026年11月02日Kafka的特点有哪些

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

Kafka是啥?

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

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

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

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

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

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

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

这2种数据的特点是:

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

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

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

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

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

首先看下数据流动图:

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

集群本身的架构图

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

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

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

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

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

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

  5. 集群中数据分区,保证单个数据消费者可以读到某话题(topic)的某子话题(例如某用户的数据)的所有数据,避免全局读数据

  6. 数据规范性,所有数据分为数百个话题,然后在数据的源头--生产者(Producer)这边就用Schema来规范数据,这种理念使得后期的数据传输、序列化、压缩、消费都有了统一的规范,同时也解决了这个领域非常麻烦的数据版本不兼容问题--生产者一改代码,消费者就抓瞎。

  7. 用于监控,这个系统的威力在于,前面所有生产系统的数据流向,通过这个系统都能关联起来,用于日常的运营也好,用于数据审计,用于运维级别的监控也好都是神器啊!

To be continued...

所以,Kafka的设计基本上目前这个领域的唯一选择。我也看了很多其他实现,包括:

scribe(Facebook)          | 2   | C++      | 已停止更新,不建议使用flume(Apache, Cloudera)   |1    | Java     | 配置较重chukwa(Hadoop)            |12   | Java     | 2012发布最后一版,不建议使用fluentd                   |1    | Ruby     | 比较活跃,看起来不错logstash                  |12345| JRuby    | 功能全,据说有不少小bugsplunk                    |12345| C/Python | 商业闭源,功能强大,可做参考timetunnel(Alibaba)       | 2   | Java     | 基于thrift,10年左右成熟kafka(Linkin)             | 2 4 | Scala    | 性能强劲,设计巧妙,可以作为基础设施Samza(Linkin)             |12345|          | =Kafka+YARN+Hadooprabbitmq/activemq/qpid    | 2   | Java     | 传统消息中间件Storm(twitter)            |  3  | Clojure  | 实时计算系统Jstorm(Alibaba)           |  3  | Java     | storm的Java版,据说更稳定S4(Yahoo)                 |  3  | Java     | 2013年已停止维护Streambase(IBM)           |  3  | Java     | 商业产品,作为参考HStreaming                |  3  | Java     | 商业产品,作为参考spark                     |  3  | Scala    | 基于Hadoopmongodb                   |   4 | C++      | 比较浪费硬盘mysql                     |   4 | C++      | 无需多说hdfs/hbase                |   4 | Java     | 无需多说
  1. 数据采集组件

  2. 数据传输组件

  3. 数据实时计算/索引/搜索组件

  4. 数据存储/持久化组件

  5. 数据展示/查询/报警界面组件

从数据传输这块的设计理念来说,Kafka是最为先进的,

在目前的各种实现中,我猜测可以和Kafka一战的也就只有Splunk了

读到这里,这篇"Kafka的特点有哪些"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

数据 消费 消费者 系统 生产 监控 特点 实时 用户 组件 集群 日志 生产者 传输 处理 存储 设计 中间件 内容 商业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 云之行互联网科技 为想互联网科技怎么样 科技与互联网发展 高科技与互联网 互联网未来科技 奇酷互联网科技公司 哈尔滨新华互联网科技 西藏七维空间互联网科技有限公司 广州优美互联网科技 中国科技互联网公司收入 湖南一路畅行互联网科技 洛阳昕诺飞互联网科技有限公司 米聚互联网科技南京有限公司排面 佛山市拉法互联网科技有限公司 上海京穆互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 安徽零酒互联网科技有限公司 互联网科技创新创业项目 青岛互联网科技园 涨乐互联网科技 卓越科技(互联网 ) 互联网科技logo设计 太原新华互联网科技学校怎么样 互联网汽车科技小镇 千方科技属于互联网企业吗 亳州好赞互联网科技有限公司 互联网方面的科技前沿 银川新华互联网科技学校是国营吗 科技互联网专业工作会议发言稿
0