消息队列之kafka

概述

kafka是一种发布-订阅者模式的主动拉取型消息队列。

  • Broker:kafka集群中的单个机器
  • Topic:kafka消息的存储单元
  • Partition:一个topic在不同broker的展现形式,以实现负载均衡,提高并发度
  • Leader/Follower:主从分布,对于一个topic来说,一台机器上有本机器的Leader数据和其他机器的Partition,当Leader宕机时,Partition才会被拉起为Leader并提供调用。
  • Consumer group:消费者组:一个分区只能被一个消费者组的某一个消费者消费
    在这里插入图片描述

消费进度

消费进度在kafka0.9前存储在zookeeper中,0.9之后存储在kafka的系统topic中。

kafka读写速度快

写入快

cache写入

kafka收到数据不会直接写到硬盘中,而回写入操作系统的高速缓存cache。再有cache批量写入硬盘。

顺序写入

kafka会将数据直接顺序写入文件尾部,不随机读写。

读的快

零拷贝技术

正常程序读取文件给外部:
服务 - cache - 硬盘 - cache - 服务 - socket - 网卡
kafka
服务 - cache - 硬盘 -cache -网卡
去掉了拷贝到服务和拷贝到socket的过程,实现零拷贝。

数据一致性

不丢失

生产端

ack应答机制,当所有数据被推送到kafka且成功备份后会返回ack应答。

服务端

从节点备份,保证至少有一个从节点,防止主节点故障导致数据挂掉。

消费端

关闭自动提交,将offset位移控制权交由客户端空值,每个客户端处理后提交offset进行位移。

不重复

客户端建立去重表进行支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值