kafka原理

本文详细介绍了Kafka的架构,包括producer、consumer、broker和zookeeper的角色。探讨了Kafka的高可靠性、高吞吐、水平扩展和数据持久化等特性。同时,解析了Kafka的数据处理流程,包括消息生产、消费、处理及持久化的细节,如消息确认机制、分区策略和压缩机制。最后,分析了Kafka的主从机制,解释了如何保证服务的高可用性。
摘要由CSDN通过智能技术生成

一、kafka架构

kafka主要由producter,consumer,broker,zookeeper组成。使用topic对消息进行分类,每个topic由多个不同broker机器上的partition构成,paritition分为leader和follower分区,follower用于数据的同步备份,当leader分区的机器出现异常后,从follower中选取新的leader。consumer按group进行分组,同一个group的consumer不能消费同一个paritition。
在这里插入图片描述
producter:数据的生产方,通过push的方式将数据发送到broker
consumer:数据的消费方,通过pull的方式从broker今行获取数据
broker:一个kafka独立的服务器,进行消息偏移量的保存及消息存储。多个broker构成一个kafka集群。
zookeeper:进行kafka集群的管理,配置,容错处理等。

二、kafka 特性简介

2.1、kafka 高可靠性

通过主从分区及数据持久化落盘,保证数据不丢失。并从通过ack机制保证数据处理过程中的可靠性。

2.2、kafka 高吞吐

a、分批发送:消息由producter进行分批发送,提高吞吐率。
b、消息压缩:将发送的批消息进行压缩,减少带宽及IO使用
c、顺序读写:消息顺序读写,减少磁盘寻址及IO操作
d、零拷贝:采用零拷贝方式移动数据,避免内核之间切换

2.3、kafka 水平扩展

kakfa通过扩充broker数量进行集群水平的扩展,提高吞吐及负载均衡,通过扩充partition数量和consumer数量进行扩充数据并发处理能力。

2.4、kafka 数据持久化

kafka通过数据落盘进行数据的持久化处理,数据按paritition以log文件方式进行存储,通过索引文件及offset进行获取消息。

三、kafka数据处理原理

3.1、消息生产者

3.1.1、消息生产流程:
a、producter将消息处理成ProducterRecord

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值