千家信息网

为什么要使用这么强大的分布式消息中间件kafka

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇文章为大家展示了为什么要使用这么强大的分布式消息中间件kafka,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为什么是kafka?在我们大量使用分布式数据
千家信息网最后更新 2026年11月04日为什么要使用这么强大的分布式消息中间件kafka

本篇文章为大家展示了为什么要使用这么强大的分布式消息中间件kafka,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

为什么是kafka?

在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题:

  1. 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位

  2. 我想对用户的搜索关键词进行统计,分析出当前的流行趋势

  3. 有些数据,存储数据库浪费,直接存储硬盘效率又低

这些场景都有一个共同点:
数据是由上游模块产生,上游模块,使用上游模块的数据计算、统计、分析,这个时候就可以使用消息系统,尤其是分布式消息系统!

知道了我们有必要在数据处理系统中使用一个消息系统,但是我们为什么一定要选kafka呢?现在的消息系统可不只有kafka。

Kafka简介

Kafka是Linkedin于2010年12月份创建的开源消息系统,它主要用于处理活跃的流式数据。活跃的流式数据在web网站应用中非常常见,这些活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。 这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计分析。

传统的日志分析系统是一种离线处理日志信息的方式,但若要进行实时处理,通常会有较大延迟。而现有的消息队列系统能够很好的处理实时或者近似实时的应用,但未处理的数据通常不会写到磁盘上,这对于Hadoop之类,间隔时间较长的离线应用而言,在数据安全上会出现问题。Kafka正是为了解决以上问题而设计的,它能够很好地进行离线和在线应用。

kafka部署结构

消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。

几大特性

  • 高吞吐量:可以满足每秒百万级别消息的生产和消费--生产消费。

  • 负载均衡:通过zookeeper对Producer,Broker,Consumer的动态加入与离开进行管理。

  • 拉取系统:由于kafka broker会持久化数据,broker没有内存压力,因此,consumer非常适合采取pull的方式消费数据

  • 动态扩展:当需要增加broker结点时,新增的broker会向zookeeper注册,而producer及consumer会通过zookeeper感知这些变化,并及时作出调整。

  • 消息删除策略:数据文件将会根据broker中的配置要求,保留一定的时间之后删除。kafka通过这种简单的手段,来释放磁盘空间。

消息收发流程

  • 启动Zookeeper及Broker.

  • Producer连接Broker后,将消息发布到Broker中指定Topic上(可以指定Patition)。

  • Broker集群接收到Producer发过来的消息后,将其持久化到硬盘,并将消息该保留指定时长(可配置),而不关注消息是否被消费。

  • Consumer连接到Broker后,启动消息泵对Broker进行侦听,当有消息到来时,会触发消息泵循环获取消息,获取消息后Zookeeper将记录该Consumer的消息Offset。

Kafka服务

对于kafka而言,kafka服务就像是一个大的水池。不断的生产、存储、消费着各种类别的消息。那么kafka由何组成呢?

  • Broker : Kafka消息服务器,消息中心。一个Broker可以容纳多个Topic。

  • Producer :消息生产者,就是向Kafka broker发消息的客户端。

  • Consumer :消息消费者,向Kafka broker取消息的客户端。

  • Zookeeper :管理Producer,Broker,Consumer的动态加入与离开。

  • Topic :可以为各种消息划分为多个不同的主题,Topic就是主题名称。Producer可以针对某个主题进行生产,Consumer可以针对某个主题进行订阅。

  • Consumer Group: Kafka采用广播的方式进行消息分发,而Consumer集群在消费某Topic时, Zookeeper会为该集群建立Offset消费偏移量,最新Consumer加入并消费该主题时,可以从最新的Offset点开始消费。

  • Partition:Kafka采用对数据文件切片(Partition)的方式可以将一个Topic可以分布存储到多个Broker上,一个Topic可以分为多个Partition。在多个Consumer并发访问一个partition会有同步锁控制。

有的时候,不光是灯红酒绿的世界可以让人沉迷,技术的世界也同样如此。而且有的时候,技术的世界比前者更加可怕,它不但能让你悄无声息的陷入进去,还能让你产生一种你很上进,你很努力的假象,以至于等到你恍然大悟那天,已经悔之晚矣。

未来Kafka中间件

目前该中间件只完成了初级阶段功能,很多功能都不完善不深入,随着应用业务的拓展及Kafka未来版本功能支持。以Kafka消息中间件为中心的大数据处理平台还有很多任务去实现。

一般在互联网中所流动的数据由以下几种类型:

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

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

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

上述内容就是为什么要使用这么强大的分布式消息中间件kafka,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

消息 数据 消费 系统 分析 日志 处理 内容 中间件 分布式 主题 多个 实时 方式 应用 生产 就是 文件 时候 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 互联网科技工作委员会主任 狮子座互联网科技有限公司 唐信互联网科技 大连 互联网科技公司做什么 无锡溥仪互联网科技有限公司 海南购全球互联网科技 科技大学互联网专业好不好 科技互联网的估值 注册互联网科技公司经营范围大全 威龙国际互联网科技公司 黑云互联网科技有限公司 陕西云淼互联网科技公司 东营紫格互联网科技 福建互联网展示科技馆设计 长沙易易互联网科技有限公司 互联网科技大佬云集 优雇互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 科技发展第三阶段互联网时代 云之行互联网科技 互联网科技英文 深圳期待互联网科技 大白互联网科技 左右互联网络科技 银川新华互联网科技学校地址 北京大学互联网科技怎么样 福建科技产业互联网发展 第三届互联网大会安防黑科技 每日互联网科技新闻
0