解析Apache Kafka:在大数据体系中的基本概念和核心组件

  • Offset(偏移量): 每个消息在分区中的唯一标识。
    在这里插入图片描述

Kafka消息存储

  • Kafka的消息存储是基于日志的,每个主题被分成一个或多个分区,每个分区是一个有序的消息队列。消息被追加到分区的末尾,并且保留一段时间(可以配置)。这种设计使得Kafka能够处理大量数据,并支持高吞吐量。

生产者发布消息

  • 当生产者发送消息到Kafka时,它们首先连接到Kafka集群的一个Broker,并根据特定的分区策略将消息发布到一个或多个主题中的分区。生产者可以选择指定消息的键,这样消息将被发送到特定的分区,或者Kafka将基于负载均衡策略自动选择分区。

消费者消费消息

  • 消费者从Kafka订阅一个或多个主题,并且会被分配到每个主题的一个或多个分区。消费者定期轮询Kafka Broker,拉取新的消息。一旦消费者拉取到消息,它们就会处理这些消息,并提交偏移量来记录自己的消费位置。

Kafka的水平扩展性

  • Kafka通过分区和复制来实现水平扩展性和高可用性。分区允许数据水平分布在集群中的多个Broker上,从而允许Kafka处理大量数据。同时,Kafka通过复制每个分区到多个Broker上来提供容错性和可靠性。

2.Kafka集群组件

在这里插入图片描述

一个典型的Kafka集群包含以下组件:

  • ZooKeeper:
    ZooKeeper是一个分布式协调服务,Kafka依赖它来进行集群管理和领导者选举。ZooKeeper保存了Kafka集群的元数据(如主题、分区、副本分配等),并且监控Kafka Broker的健康状态。
  • Broker:
    Broker是Kafka集群中的服务器节点,负责存储和处理数据。每个Broker都是一个独立的Kafka服务器,它们共同组成了整个Kafka集群。
  • Topic:
    Topic是消息发布的类别或分区。在集群中,每个Topic都被分成一个或多个分区,这些分区分布在不同的Broker上。
  • Partition:
    Partition是Topic的子集,每个分区都是一个有序的消息队列。分区允许数据在多个Broker上进行并行处理,从而提高了吞吐量和可扩展性。

Kafka集群工作原理

  • 启动:
    当Kafka Broker启动时,它会向ZooKeeper注册自己的信息,包括主机名、端口号等。ZooKeeper会维护所有Broker的信息,并监控它们的健康状态。
  • 元数据管理:
    ZooKeeper保存了Kafka集群的元数据,包括Topic、分区、副本分配等信息。这些元数据被用来协调Broker之间的消息路由和复制。
  • Leader-Follower模式:
    对于每个分区,Kafka会选举出一个Broker作为Leader,并将其他Broker设置为Follower。Leader负责处理所有的读写请求,而Follower则负责复制Leader的数据。当Leader失效时,ZooKeeper会协助选举新的Leader。
  • 消息发布和消费:
    生产者将消息发布到指定的Topic,Kafka根据分区策略将消息分配到各个分区中。消费者从Topic订阅消息,并根据分配的分区拉取数据。Kafka会保证消息的顺序性和一致性,以及消费者的负载均衡。
  • 水平扩展:
    Kafka通过增加Broker节点和分区来实现水平扩展。每个Broker负责处理一部分数据和请求,从而提高了集群的吞吐量和容量。

Kafka集群的可靠性和容错性

  • 副本复制:
    每个分区都有多个副本,它们分布在不同的Broker上。当Leader失效时,Kafka会自动选择一个副本作为新的Leader,从而保证数据的可用性。
  • ISR机制:
    Kafka使用ISR(In-Sync Replicas)机制来确保副本之间的一致性。只有处于ISR中的副本才会被选举为新的Leader,这样可以防止数据丢失和不一致。
  • 故障恢复:
    当Broker或者分区发生故障时,Kafka会自动进行故障恢复,包括重新选举Leader和同步数据等操作。

3.Kafka在大数据的应用场景

在这里插入图片描述

实时日志处理

  • 实时日志处理是Kafka的一个典型应用场景。许多大型互联网企业和在线服务需要实时收集、处理和分析海量日志数据,以监控系统运行状况、进行故障排查和提供用户行为分析等功能。Kafka作为一个高吞吐量、低延迟的消息队列,可以用来收集和传输日志数据,同时支持流式处理引擎(如Apache Spark、Apache Flink等)进行实时分析和计算。

数据管道和ETL

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-WUkTBglB-1712589477602)]

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值