前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【赵渝强老师】Kafka的体系架构

【赵渝强老师】Kafka的体系架构

原创
作者头像
赵渝强老师
发布2024-08-12 15:50:58
1200
发布2024-08-12 15:50:58
举报
文章被收录于专栏:大数据技术

  Kafka消息系统是一个典型的分布式系统,其组成部分包括:消息生产者(Producer)、消息消费者(Consumer)、消息服务器(Broker)以及分布式协调服务ZooKeeper。一个典型的Kafka消息系统的集群架构如下图所示。

  视频讲解如下:

视频内容

  下表列举了Kafka中的一些术语,这些术语对于掌握Kafka的内容非常重要。

一、消息服务器Broker

  Broker是消息的服务器。生产者往Brokers里面的指定主题中写入消息,消费者从Brokers里面拉取指定主题的消息,然后进行业务处理。Broker在中间起到一个代理保存消息的作用。

  另一方面,Broker没有副本机制。因此一旦Broker宕机,该Broker的消息将都不可用。消费者可以回溯到任意位置重新从Broker中进行消息的消费。当消费者发生故障时,可以选择最小的消息偏移量地址进行重新读取消费消息。

二、主题、分区与副本

  Kafka中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题,而消费者负责订阅主题进行消费。主题可以分为多个分区,一个分区只属于某一个主题。下面为列举了主题和分区的关系:

  • 同一主题下的不同分区包含的消息不同。生产者发送给主题的消息都是具体发送到某一个分区中。
  • 消息被追加到分区日志文件的时候,Broker会为消息分配一个特定的偏移量地址(offset)。该地址是消息在分区中的唯一标识,Kafka通过它来保证消息在分区的顺序性。
  • offset不能跨越分区,也就是说Kafka保证的是分区有序而不是主题有序;

  下图展示了主题与分区之间的关系。

  在这个例子中,Topic A有3个分区。消息由生产者顺序追加到每个分区日志文件的尾部。Kafka中的分区可以分布在不同的Kafka Broker上,从而支持负载均衡和容错的功能。也就是说,Topic是一个逻辑单位,它可以横跨在多个Broker上。

三、生产者

  消息的生产者负责将消息发送到Kafka的Broker上。生产者生产的消息可以是字符串类型的消息,也可以是一个对象。

四、消息的消费

  消息的消费者负责消费和处理消息。在Kafka消息系统中采用了消费者组的方式来管理消费者。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、消息服务器Broker
  • 二、主题、分区与副本
  • 三、生产者
  • 四、消息的消费
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档