KAFKA架构重温

简介: KAFKA架构重温

KAFKA架构重温

1.png

kafka架构组成部分:由kafka集群,zookeeper集群,生产者和消费者构成。其中zookeeper存储kafka相关元数据信息以及负责监控和维护kafka集群的健康状态。


kafka集群由服务实例Broker组成,每一个Broker只持有主题topic中的一部分数据称之为主分区数据,其复制分区以一种冗余的容错的方式存储到其他Broker中。


Topic是一类数据集的集合,其实就是一种record队列,每一个record中由一个offset(偏移量)记录读取和写入位置,每一个分区都是一个有序的持续的可追加的不可变record队列,并在kafka中以结构化日志文件commit log文件来存储的,且不管消息消费与否,都会有个默认的保留周期。


生产者负责生产数据,将消息发布到Topic主题中,生产者消息发布策略,当record的k不为空时,使用哈希取模的发布策略(key.hashCode % numPartitions);当record中的key为空时,使用轮询分区的方式进行消息的发布;手动指定record存储的分区序号。当生产者发布消息之后存储时会有一个ack机制,当ack机制设置为0时broker无需应答,当ack设置为1时及写入主分区不管复制分区是否写入成功,立即应答,当ack设置为all或者-1时表示数据发写入到主分区且同步到复制分区时才进行应答,当超过默认时长30s时进行retry重新将数据写入到主分区,此时必定会有一个问题就是造成主分区数据重复,为了解决这个问题引入幂等操作(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true)。生产者的批量发送,将多个Record存放一个缓冲区,当满足条件(缓冲区大小 | 逗留时间)时以批量的形式发送存放kafka集群;


消费者消费topic中的数据,由所属消费组进行操作,同组以同组一种负载均衡,不同组广播的方式进行数据的消费;当同组消费者出现故障时,会自动进行容错处理,将当前消费者所负责的分区均匀的笑给其他消费者进行处理;消费者有三种消费方式:只订阅,订阅一个到n个topic所有分区的所有数据;指定消费分区:订阅一个或者多个topic中的分区数据;手动指定分区消费位置:每一个消费者维护一个消费位置offset,可以手动设置offset做到重新消费或者跳过不感兴趣的数据;当消费者首次订阅时,有两种方式,latest和earliest,当设置为earliest时,如当前分区有已经提交的offset,从当前offset进行消费,若没有则从最后即最新产的生的数据进行消费;如果设置为earliest,如有已提交的offset,从当前offset进行消费,若没有,从当前分区的开头进行消费。


消费组的作用:用来组织消费者的一种方式,同组负载均衡不同组广播,记录同组消费者的消费者位置。不同的消费组,Topic数据会复制给所有的消费组,但是只能由消费组中的一个消费者进行数据的处理。同时维护组员中的消费位置
相关文章
|
1月前
|
消息中间件 缓存 架构师
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
Kafka 是一个高吞吐量、高性能的消息中间件,关于 Kafka 高性能背后的实现,是大厂面试高频问题。本篇全面详解 Kafka 高性能背后的实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
|
1月前
|
消息中间件 存储 负载均衡
【赵渝强老师】Kafka的体系架构
Kafka消息系统是一个分布式系统,包含生产者、消费者、Broker和ZooKeeper。生产者将消息发送到Broker,消费者从Broker中拉取消息并处理。主题按分区存储,每个分区有唯一的偏移量地址,确保消息顺序。Kafka支持负载均衡和容错。视频讲解和术语表进一步帮助理解。
|
2月前
|
消息中间件 NoSQL Kafka
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
72 5
|
2月前
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
81 4
|
4月前
|
消息中间件 负载均衡 Java
揭秘Kafka背后的秘密!Kafka 架构设计大曝光:深入剖析Kafka机制,带你一探究竟!
【8月更文挑战第24天】Apache Kafka是一款专为实时数据处理及流传输设计的高效率消息系统。其核心特性包括高吞吐量、低延迟及出色的可扩展性。Kafka采用分布式日志模型,支持数据分区与副本,确保数据可靠性和持久性。系统由Producer(消息生产者)、Consumer(消息消费者)及Broker(消息服务器)组成。Kafka支持消费者组,实现数据并行处理,提升整体性能。通过内置的故障恢复机制,即使部分节点失效,系统仍能保持稳定运行。提供的Java示例代码展示了如何使用Kafka进行消息的生产和消费,并演示了故障转移处理过程。
56 3
|
4月前
|
消息中间件 负载均衡 Kafka
Kafka 实现负载均衡与故障转移:深入分析 Kafka 的架构特点与实践
【8月更文挑战第24天】Apache Kafka是一款专为实时数据处理和流传输设计的高性能消息系统。其核心设计注重高吞吐量、低延迟与可扩展性,并具备出色的容错能力。Kafka采用分布式日志概念,通过数据分区及副本机制确保数据可靠性和持久性。系统包含Producer(消息生产者)、Consumer(消息消费者)和Broker(消息服务器)三大组件。Kafka利用独特的分区机制实现负载均衡,每个Topic可以被划分为多个分区,每个分区可以被复制到多个Broker上,确保数据的高可用性和可靠性。
104 2
|
4月前
|
消息中间件 Kafka Java
Spring 框架与 Kafka 联姻,竟引发软件世界的革命风暴!事件驱动架构震撼登场!
【8月更文挑战第31天】《Spring 框架与 Kafka 集成:实现事件驱动架构》介绍如何利用 Spring 框架的强大功能与 Kafka 分布式流平台结合,构建灵活且可扩展的事件驱动系统。通过添加 Spring Kafka 依赖并配置 Kafka 连接信息,可以轻松实现消息的生产和消费。文中详细展示了如何设置 `KafkaTemplate`、`ProducerFactory` 和 `ConsumerFactory`,并通过示例代码说明了生产者发送消息及消费者接收消息的具体实现。这一组合为构建高效可靠的分布式应用程序提供了有力支持。
118 0
|
16天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
25天前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
40 3
|
1月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
下一篇
DataWorks