Kafka Message(消息)有那几部分组成?

在这里插入图片描述
CRC32:4个字节,消息的校验码。
magic:1字节,魔数标识,与消息格式有关,取值为0或1。当magic为0时,消息的offset使用绝对offset且消息格式中没有timestamp部分;当magic为1时,消息的offset使用相对offset且消息格式中存在timestamp部分。所以,magic值不同,消息的长度是不同的。
attributes: 1字节,消息的属性。其中第0~ 2位的组合表示消息使用的压缩类型,0表示无压缩,1表示gzip压缩,2表示snappy压缩,3表示lz4压缩。第3位表示时间戳类型,0表示创建时间,1表示追加时间。
timestamp: 时间戳,其含义由attributes的第3位确定。
key length:消息key的长度。
key:消息的key。
value length:消息的value长度。
value:消息的内容

Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据管道和数据流应用。Kafka 的主要组成部分包括: 1. **Broker( broker)**:Kafka 的核心组件,负责存储和分发消息。每个 Broker 都有多个分区(partition),这些分区是有序的消息队列。Broker 通过网络接收生产者发送的消息,并将其复制到多个副本,提供高可用性和容错性。 2. **Producer(生产者)**:将数据发布到 Kafka 系统的应用,Producer 将消息打包成消息批次(message batch),然后发送给 Broker。Producer 可以设置消息的持久化级别,以及是否立即发送到所有副本。 3. **Consumer(消费者)**:从 Kafka 中消费数据的应用,它可以订阅主题(topic)并获取消息。Consumer 通常按照消息的顺序进行消费,并可以选择消费模式,如拉取(pull)或推送到(push)。 4. **Topic(主题)**:Kafka 中的消息分类容器,每个 Topic 可以有多个分区。主题用于组织和分发数据,生产者将消息发送到 Topic,消费者则从 Topic 中订阅消息。 5. **Partition(分区)**:每个 Topic 下的逻辑分段,分区内部的消息是有序的。分区数量可以根据性能需求进行配置,有助于提高吞吐量和扩展性。 6. **Metadata(元数据)**:Kafka 存储关于 Broker、Topic 和 Partition 状态的信息,包括哪些 Broker 拥有哪些分区的副本。 7. **Zookeeper(可选)**:虽然 Kafka 本身可以管理一些元数据,但通常会使用 ZooKeeper 作为外部协调服务,用于集群管理、节点发现和配置管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值