Kafka消息队列

摘要

Kafka是一个分布式消息队列,提供高性能、高可用的数据传输服务。
分布式是指集群化部署,最终部署在多台物理机上。
高性能是指吞吐量大,每秒可传输数十万条消息
高可用是指Kafka始终可以正常工作。

Kafka架构设计(高性能设计)

系统架构

在这里插入图片描述
生产者负责投送消息,可以是集群。
Broker是消息队列的物理机。
Topic实际是按业务分区,消息按不同业务类型发送到不同的Topic。
Partition是数据分区,可以提高并发度,也可以将不同分区部署在不同机器来实现容错。
消费者组对应的是Topic,一个Topic可根据不同用途创建多个消费者组,一个消费者组可以包含多个消费者来进行并发消费。
在这里插入图片描述

关键设计

拉消息而非推消息

传统的消息队列一般是消息过来以后推给下游,那么必须维护分区内的每条消息被下游的各消费者组消费的情况,没消费完就要驻留内存。消息队列的任务很重,消耗就大。
Kafka只提供消息的存储功能,让消费者组自己来拉,每个消费者自己维护消息的消费情况。同时Kafka规定每个分区内的消息只能顺序消费。

分区内存储设计

Kafka规定了同一分区内消息顺序消费,所以一个分区逻辑上是一个文件。但实际存储时将文件拆分为多个大小相同的段文件,同时配一个段索引表。
写入消息时顺序写入最后一个段即可。读取消息时根据消息的偏移量在索引表中映射段文件,然后在段文件中读取消息即可。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值