Kafka架构

引言

Kafka 凭借其独树一帜的分区架构,在消息中间件领域展现出了卓越的性能表现。其分区架构不仅赋予了 Kafka 强大的并行计算能力,使其能够高效处理海量数据,还显著提升了系统的容灾能力,确保在复杂的运行环境中始终保持稳定可靠。本文将深入剖析 Kafka 的架构选型,通过对其底层逻辑的抽丝剥茧,帮助我们提炼架构设计的关键能力与思维模式,进而为优化自身系统架构提供极具价值的参考。

消息中间件通用架构

生产者

  • 功能:负责将消息发布到 Kafka 集群。生产者可以将消息发送到指定的主题(Topic),并根据分区策略决定消息发送到哪个分区。
  • 工作原理:生产者在发送消息时,会先将消息序列化为字节数组,然后根据主题和分区信息,将消息发送到对应的 Broker 节点。生产者还可以进行消息的批量发送、压缩等操作,以提高发送效率。

消费者

  • 功能:用于从 Kafka 集群中读取消息并进行处理。消费者可以订阅一个或多个主题,并从这些主题的分区中拉取消息进行消费。
  • 工作原理:消费者通过向 Broker 发送拉取请求来获取消息,它会记录自己已经消费到的消息偏移量(Offset),以便在下次拉取时从正确的位置继续读取。消费者可以以单线程或多线程的方式处理消息,并且可以将消费结果进行持久化或进行其他后续操作。

主题

  • 功能:是 Kafka 中消息的逻辑分类,类似于数据库中的表。每个主题可以包含多个分区,不同的主题可以用于不同的业务场景或数据类型。
  • 工作原理:生产者将消息发送到指定的主题,消费者通过订阅主题来获取该主题下的消息。主题可以配置不同的属性,如分区数量、副本因子等,以满足不同的业务需求。

代理

  • 功能:是 Kafka 集群中的服务器节点,负责接收生产者发送的消息,存储消息,并为消费者提供消息读取服务。
  • 工作原理:Broker 接收到生产者发送的消息后,会将消息写入到本地的磁盘日志文件中。当消费者请求消息时,Broker 会根据消费者的请求,从磁盘中读取相应的消息并返回给消费者。Broker 还负责管理分区的副本,进行数据的复制和同步,以保证数据的可靠性。

集群

  • 功能:由多个 Broker 节点组成,共同提供 Kafka 的消息存储和处理服务。集群可以实现高可用性、可扩展性和负载均衡。
  • 工作原理:集群中的 Broker 节点通过 Zookeeper 进行协调和管理,它们会相互通信,以确保数据的一致性和可用性。当集群中的某个 Broker 节点出现故障时,其他节点可以自动接管其工作,保证系统的正常运行。同时,集群可以通过添加新的 Broker 节点来扩展存储和处理能力。

独特架构

主题 + 分区

  • 功能:是主题的物理划分,每个主题可以分为多个分区。分区可以分布在不同的 Broker 节点上,实现数据的分布式存储和并行处理。
  • 工作原理:消息在写入主题时,会根据分区策略被分配到具体的分区中。每个分区内部的消息是有序的,消费者可以通过分区来并行地读取消息,提高消费效率。同时,分区还可以通过副本机制来保证数据的可靠性和容错性。
  • 独特性:可以将消息并行消费,同时不同Broker能保存相同的分区消息来实现容错性。

架构思维

  • 吞吐率:如何将消息并行化同时保持有序性,kafka给予了很好的范本
  • 容错性:默认副本机制,持久化的同时节点备份是最优解
相关推荐
王嘉俊92543 分钟前
HarmonyOS 超级终端与服务卡片开发:打造无缝多设备交互体验
华为·架构·harmonyos·arkts·1024程序员节
毕设源码-赖学姐1 小时前
【开题答辩全过程】以基于Hadoop的电商数据分析系统为例,包含答辩的问题和答案
大数据·hadoop·分布式·1024程序员节
ink@re1 小时前
消息队列集群——RabbitMQ
分布式·rabbitmq·1024程序员节
小马哥编程1 小时前
【软考架构】架构风格:RAG知识库是属于软件八大架构风格中的哪一个,黑板架构风格 ?规则系统体系风格?
大数据·计算机网络·架构·1024程序员节
报错小能手2 小时前
项目——基于C/S架构的预约系统平台(2)
linux·c语言·笔记·学习·架构
wanhengidc4 小时前
服务器硬件设备都有哪些?
运维·服务器·网络·游戏·智能手机·架构·云计算
逻极5 小时前
HarmonyOS 5 鸿蒙多设备适配与分布式开发指南
分布式·华为·harmonyos·鸿蒙
Xの哲學9 小时前
Linux NAPI 架构详解
linux·网络·算法·架构·边缘计算
朱嘉鼎10 小时前
CPU的发展历程、架构与指令
架构