Kafka理论之Partition & Replication

本文深入探讨Kafka的Partition和Replication机制。Partition是数据的物理分区,用于水平扩展性能并保持内部顺序;Segment是Partition的细分,用于优化数据存储和检索。Replication提供高可用性,Leader Replica负责处理请求,Follower Replica负责同步数据。Kafka通过ISR(副本同步队列)确保数据一致性,同时提供不同acks配置以平衡吞吐量和一致性。
摘要由CSDN通过智能技术生成

Kafka基本架构

在这里插入图片描述
此图来源于朱小厮博客

上图为Kafka的典型架构图,对于消息的生产以及消费逻辑不在本文的讨论范畴,主要就Broker的数据存储做以浅显的总结。首先解释一下常见的相关专业术语:

  • Broker:消息中间件处理节点;每个Kafka服务节点称之为一个Broker,一个Kafka集群由一个或多个Broker组成
  • Topic:一类特定数据集合的统称;可类比DB中Table的概念;逻辑概念
  • Producer:消息的生产者,向Broker发送消息的客户端
  • Consumer:消息的消费者,向Broker读取消息的客户端
  • Consumer Group:每一个Consumer隶属于一个特定的Consumer
  • Group,一条消息可以被不同Group中的Consumer消费,但同一Group内的消息只能被一个Consumer消费
  • Partition:是对Topic中所包含数据集的物理分区;物理概念
  • Replication:副本集;是Kafka高可用的一种保障机制

Partition & Replication

概述

Partition(分区)

Partition是作用于具体的Topic而已的,而不是一个独立的概念。Partition能水平扩展客户端的读写性能,是高吞吐量的 保障。通俗的将,Partition就是一块保存具体数据的空间,本质就是磁盘上存放数据的文件夹,所以Partition是不能跨Broker存在,也不能在同一个Broker上跨磁盘。对于一个Topic,可以根据需要设定Partition的个数;Kafka默认的Partition个数num.partitions为1($KAFKA_HOME/config/server.properties),表示该Topic的所有数据均写入至一个文件夹下;用户也可以在新建Topic的时候通过显示的指定–partitions 参数实现自定义Partition个数。在数据持久化时,每条消息都是根据一定的分区规则路由到对应的Partition中,并append在log文件的尾部(这一点类似于HDFS);在同一个Partition中消息是顺序写入的且始终保持有序性;但是不同Partition之间不能保证消息的有序性(高吞吐量的保障)。

Kafka也支持动态增加一个已存在Topic的Partition个数,但不支持动态减少Partition个数。因为被减少Partition所对应的数据处理是个难题;由于Kafka的数据写

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值