概要梳理kafka知识点

简介: 主要是梳理一下kafka学习中的一些注意点,按照消息的流动方向进行梳理.详细的kafka介绍推荐看骑着龙的羊的系列博客,具体的某一块的知识点,可以参考我给出的一些参考文章.1. kafka在系统中的地位Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。

主要是梳理一下kafka学习中的一些注意点,按照消息的流动方向进行梳理.详细的kafka介绍推荐看骑着龙的羊的系列博客,具体的某一块的知识点,可以参考我给出的一些参考文章.

1. kafka在系统中的地位

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
详细参考文章

2. kafka基本原理

(1) kafka系统数据流图

    a) productor发送数据到broker
    b) broker确定消息的存储路由,找到对应的topic,并根据分配算法,存储到对应的partition中
    c) consumer订阅topic, 读取消息时,根据不同本group对应不同partition的不同offset,获取对应的消息

img_83e15c3af03a8bd7269f44b1bf23361d.png

3. kafka数据流入处理

(1) 在发送一条消息时,可以指定这条消息的key,broker根据这个key和partition机制来判断将这条消息发送到哪个parition。(每个parition都会有个序号)参考文章

(2) 每个partition都有若干个server,其中只有一个作为leader,持有所有对该partition的读写请求.其他最为follower,当leader出现问题是,从所有follower中选一个作为leader,保证该partition正常被读写.(这里的server是指kafka的broker)详细介绍
参考文章

4. kafka数据存储处理

(1) 消息在kafka中是顺序存储在partition中的,partition是物理概念,在操作系统中是以文件夹的形式保存的,命名格式是{topicName}-{partitionId},partition的ID是从0开始编号的.文件夹的组织格式详细介绍参考文章

(2) partition的数据结构类似于队列,先进先出,消息的唯一标示是在partition中的偏移量(offset),(功能类似于操作系统中的偏移量).在新版本的kafka中,offset是有consumer维持,consumer可以选择订阅最新消息,也可以从最开始订阅消息.consumer也可以通过改变offset重复读消息.

(3) offset是保存在一个topic下的,该topic的名称为__consumer_offsets,它有50个partition,标号0-49,以消费的Group,Topic,以及Partition做为组合 Key,利用这个组合key唯一确定offset的存储位置.kafka在内存中保持了__consumer_offsets的内容,加速offset的读取.参考链接

(4) kafka的一个特性就是能够有效保持message,它把message保存在文件中,同时也可以通过设置文件的保存时间或者文件的最大容量来有计划的删除过期消息.

5. kafka数据流出处理

参考文章

(1) consumer订阅topic,实际上订阅的是topic的partition

(2) 消息被均匀保存在一个topic的多个partition中

(3) consumer订阅partition, 受限于自己所在的group,如果consumer所在的group中,有别的consumer订阅了该partition,那么这个consumer就不能订阅该partition.这似乎是矛盾的,似乎这个consumer就不可能完整订阅topic的所有message了.实际上,可以把一个group中所有consumer看成逻辑上的消费者的多个子消费者,这些子消费者采用并发的存在形式从而加速逻辑消费者的消息消费速度.

(4) 详细介绍文章

6. kafka数据备份

参考文章

目录
相关文章
|
消息中间件 缓存 监控
|
消息中间件 安全 Java
Kafka 使用-知识点 | 学习笔记
快速学习 Kafka 使用-知识点
148 0
|
消息中间件 存储 算法
|
消息中间件 存储 分布式计算
在家办公这些天整理的Kafka知识点大全
Kakfa 广泛应用于国内外大厂,例如 BAT、字节跳动、美团、Netflix、Airbnb、Twitter 等等。今天我们通过这篇文章深入了解 Kafka 的工作原理。
在家办公这些天整理的Kafka知识点大全
|
消息中间件 存储 负载均衡
Kafka面试题——20道Kafka知识点
7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!马上投递简历:https://developer.aliyun.com/special/offerday01
|
8天前
|
消息中间件 负载均衡 Java
"Kafka核心机制揭秘:深入探索Producer的高效数据发布策略与Java实战应用"
【8月更文挑战第10天】Apache Kafka作为顶级分布式流处理平台,其Producer组件是数据高效发布的引擎。Producer遵循高吞吐、低延迟等设计原则,采用分批发送、异步处理及数据压缩等技术提升性能。它支持按消息键值分区,确保数据有序并实现负载均衡;提供多种确认机制保证可靠性;具备失败重试功能确保消息最终送达。Java示例展示了基本配置与消息发送流程,体现了Producer的强大与灵活性。
27 3
|
21天前
|
消息中间件 存储 Kafka
kafka 在 zookeeper 中保存的数据内容
kafka 在 zookeeper 中保存的数据内容
31 3
|
1天前
|
消息中间件 SQL Java
实时数仓 Hologres产品使用合集之如何用python将kafka数据写入
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4天前
|
消息中间件 Kafka Apache
流计算引擎数据问题之Apache Kafka Streams 没有采用低水印方案如何解决
流计算引擎数据问题之Apache Kafka Streams 没有采用低水印方案如何解决
11 0
|
4天前
|
消息中间件 缓存 Kafka
图解Kafka:架构设计、消息可靠、数据持久、高性能背后的底层原理
【8月更文挑战第15天】在构建高吞吐量和高可靠性的消息系统时,Apache Kafka 成为了众多开发者和企业的首选。其独特的架构设计、消息可靠传输机制、数据持久化策略以及高性能实现方式,使得 Kafka 能够在分布式系统中大放异彩。本文将通过图解的方式,深入解析 Kafka 的这些核心特性,帮助读者更好地理解和应用这一强大的消息中间件。
19 0

热门文章

最新文章