前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据开发:Kafka入门须知的几组概念

大数据开发:Kafka入门须知的几组概念

原创
作者头像
成都加米谷大数据
修改2021-06-15 10:39:54
2440
修改2021-06-15 10:39:54
举报
文章被收录于专栏:大数据开发大数据开发

Kafka在目前的大数据技术生态体系当中,是尤其得到重用的,尤其是针对于实时消息流处理,Kafka的性能是值得称赞的。Kafka学习,也是大数据学习当中的重要一课。今天的大数据开发学习分享,我们就主要来讲讲Kafka入门须知的几组核心概念。

概念一:生产者与消费者

大数据学习:Kafka入门须知的几组核心概念
大数据学习:Kafka入门须知的几组核心概念

对于Kafka来说,客户端有两种基本类型:生产者(Producer)和消费者(Consumer)。除此之外,还有用来做数据集成的Kafka Connect API和流式处理的Kafka Streams等高阶客户端,但这些高阶客户端底层仍然是生产者和消费者API,它们只不过是在上层做了封装。

生产者(也称为发布者)创建消息,而消费者(也称为订阅者)负责消费or读取消息。

概念二:主题(Topic)与分区(Partition)

在Kafka中,消息以主题(Topic)来分类,每一个主题都对应一个「消息队列」,这有点儿类似于数据库中的表。

但是如果我们把所有同类的消息都塞入到一个“中心”队列中,势必缺少可伸缩性,无论是生产者/消费者数目的增加,还是消息数量的增加,都可能耗尽系统的性能或存储。所以引入分区(Partition)的概念,类似“允许多修几条道”的方式对我们的主题完成了水平扩展。

概念三:Broker和集群(Cluster)

一个Kafka服务器也称为Broker,它接受生产者发送的消息并存入磁盘;Broker同时服务消费者拉取分区消息的请求,返回目前已经提交的消息。使用特定的机器硬件,一个Broker每秒可以处理成千上万的分区和百万量级的消息。

若干个Broker组成一个集群(Cluster),其中集群内某个Broker会成为集群控制器(Cluster Controller),它负责管理集群,包括分配分区到Broker、监控Broker故障等。在集群内,一个分区由一个Broker负责,这个Broker也称为这个分区的Leader;当然一个分区可以被复制到多个Broker上来实现冗余,这样当存在Broker故障时可以将其分区重新分配到其他Broker来负责。

概念四:多集群

随着业务发展,我们往往需要多集群,通常处于下面几个原因:

基于数据的隔离;基于安全的隔离;多数据中心(容灾)

当构建多个数据中心时,往往需要实现消息互通。举个例子,假如用户修改了个人资料,那么后续的请求无论被哪个数据中心处理,这个更新需要反映出来。又或者,多个数据中心的数据需要汇总到一个总控中心来做数据分析。

上面说的分区复制冗余机制只适用于同一个Kafka集群内部,对于多个Kafka集群消息同步可以使用Kafka提供的MirrorMaker工具。本质上来说,MirrorMaker只是一个Kafka消费者和生产者,并使用一个队列连接起来而已。它从一个集群中消费消息,然后往另一个集群生产消息。

关于大数据开发学习,Kafka入门须知的几组核心概念,以上就为大家做了基本的介绍了。Kafka的学习,需要从基础概念开始,能够理解其含义,对于后续的运行机制和架构设计理解,也是有好处的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档