当前位置: 首页 > news >正文

kafka架构原理快速入门

前言

Kafka在消息队列中吞吐量最大,以极致的性能得到广大程序员的极度好评,下面我们从Kafka设计层面来对Kafka进行一个快速入门

Kafka的架构

Broker        Kafka消息队列的代理节点,是Kafka核心组成部分,用来接收、存储、发送消息的代理节点,⼀个Kafka节点就是⼀个broker,⼀个或者多个 Broker可以组成⼀个Kafka集群

zookeeper  Kafka节点的注册中心和分布式协调器,早期版本使用,现在Zookeeper 注册中心现在已被 KRaft模式 替代

Topic          Kafka消息队列中的主题,Kafka根据topic对消息进⾏归类,发布到Kafka集群的每条消息都需要指定 ⼀个topic

消息生产者和消费者

Kafka代理节点管理消息的机制

1、代理节点是可以管理主题的

2、主题的消息是保存在代理节点中的一个日志文件夹

3、因为消息可能会很多,所以主题也会进行一个分布式管理,就对主题进行了分片横向扩展和集群高可用

4、主题的分片扩展,分片就是指的主题分区,消息存储到那个分区是通过哈希值计算的,分区是可以并行处理消息的,增加Kafka的吞吐量

5、主题的集群高可用,就是把整个集群复制成多份,这个就是主题副本,有集群就会有主从节点,所以就有了主题分区主节点主题分区从节点的概念

6、所以可以知道,进入主题的消息,在一个分区是可以保证顺序的,存储的时候是有序的,但是分区之间的消息存储是无序的,因为是使用哈希值随机计算的

7、最后发现消息的本质是Kafka的主题分区进行管理的,消费者组之间是广播模式,消费者组内部是负载均衡模式是对主题分区而言的

Kafka对消息持久化运行机制

生产者发送消息之后,消息会分配一个主题分区进行接收,消息是先写入磁盘中,然后再对这个消息进行读取和转发

对Kafka来说,持久化数据不丢失是最主要的任务,至于转发给消费者消费并没有太高的时间要求

并且使用偏移量来记录消息发送到那个位置了

所以就可以实现消费者消费Kafka主题分区的两种策略

        从当前位置进行消费还是从头开始消费消息的策略

Kafka会使用一个名为消费者偏移量的主题来记录持久化管理每个主题分区的偏移量的值

这个主题默认有50个分片和3个集群节点保证横向扩展和高可用以保证对消息的持久化支持

Kafka存储消息的时候会建立稀疏索引的方式来优化读取消息的效率

稀疏索引

        仅仅记录部分消息的索引,读取的时候使用二分查找的方式快速定位到目标值的索引项

http://www.lryc.cn/news/615122.html

相关文章:

  • AI大语言模型在生活场景中的应用日益广泛,主要包括四大类需求:文本处理、信息获取、决策支持和创意生成。
  • 软件定义车辆加速推进汽车电子技术
  • Blender 快捷键速查表 (Cheat Sheet)
  • 【线性代数】6二次型
  • 可直接运行的 Playwright C# 自动化模板
  • 通过 Certimate 统一管理 SSL 证书 支持自动化申请、全平台部署
  • 【线性代数】线性方程组与矩阵——(1)线性方程组与矩阵初步
  • 数据挖掘2.6 Perceptron Modeling 感知器建模
  • 我想做自动化报社保,用哪种技术更好一点呢?
  • stm32项目(25)——基于stm32的植物生长箱环境监测系统
  • 「iOS」————响应者链与事件传递链
  • GPT-5:数字大脑的进化史
  • 人工智能-python-数据处理实战-特征降维(PCA)
  • CD63.【C++ Dev】多态(2): 剖析虚函数表的前置知识
  • 【线性代数】线性方程组与矩阵——(3)线性方程组解的结构
  • 【CTF】PHP反序列化基础知识与解题步骤
  • 华为实验:SSH
  • 华为实验: 单区域/多区域OSPF
  • [优选算法专题一双指针——四数之和]
  • 【Leecode 随笔】
  • 大模型在垂直场景的创新应用:搜索、推荐、营销与客服新玩法
  • Q-learning强化算法万字详解
  • 关于C语言本质的一些思考
  • Python(6) -- 数据容器
  • Python映射合并技术:多源数据集成的高级策略与工程实践
  • 3D感知多模态(图像、雷达感知)
  • 容器技术基础与实践:从镜像管理到自动运行配置全攻略
  • 大数据与财务管理:未来就业的黄金赛道
  • 深入理解C++构造函数与初始化列表
  • centos 怎么将一些命令设置为快捷命令