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

Kafka-partition和消费者的关系

Kafka-partition

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.Kafka-partition
      • 2.消费者数量小于分区数量
      • 3.
    • 拓展实现
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

Kafka-partition

需求:

Kafka-partition

设计思路

实现思路分析

1.Kafka-partition

分区可以将topic的消息打散到多个分区分布式的保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量。Kafka的producer和consumer都可以多线程地并行操作,而每个线程处理的是一个分区的数据。
因此分区实际上是调优Kafka并行度的最小单元。对于producer而言,它实际上是用多个线程并发地向不同分区所在的broker发起Socket连接同时给这些分区发送消息;而consumer,同一个消费组内的所有consumer线程都被指定topic的某一个分区进行消费。

分区是消息分布式存储,方便并行操作,提高吞吐量

2.消费者数量小于分区数量

只有一个消费者时,消费者1将收到4个分区的全部消息,容易造成消费者1扛不住崩溃

3.

当有两个消费者时,每个消费者将分别从两个分区接受消息。
当有四个消费者时,每个消费者都可以接受一个分区的消息
当有五个消费者时,会有闲置的消费者

Kafka中的rebalance称之为再均衡,是Kafka中确保consumer group下所有的consumer如何达成一致,分配订阅的topic的每个分区的机制。

1、Rebalance触发的时机有:

(1)消费者组中consumer的个数发生变化了。

例如有新的consumer加入到消费者组,或者是某个consumer停止了。
(2)订阅的topic个数发生变化

消费者可以订阅多个主题,假设当前的消费者组订阅了三个主题,但有一个主题突然被删除了,此时也需要发生再均衡。
(3)订阅的topic分区数发生变化

topic的分区减少或新增,此时也需要发生再均衡。

拓展实现

这里参考:github:简单实现上述流程:
入门级实现:
: 部分源码实现.
: 源码实现

参考资料和推荐阅读

1.https://blog.csdn.net/zmj199536/article/details/125938273
2.https://www.cnblogs.com/xxeleanor/p/15054198.html

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

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

相关文章:

  • 使用克拉默法则进行三点定圆(二维)
  • 【Java】Java多线程编程基础
  • FFmpeg-4.2.4的去logo源码分析
  • 深度学习(一)
  • Stream API将对象中的某一字段取出转换为list或数组
  • 什么是Java中的JVM(Java虚拟机)?
  • springboot + redis + 注解 + 拦截器 实现接口幂等性校验
  • PLC编程:关键在于模拟操作流程和实现控制
  • List的各种排序
  • 在自定义数据集上微调Alpaca和LLaMA
  • Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
  • Solr原理剖析
  • 解决 “无法将 ‘npm‘ 项识别为 cmdlet、函数、脚本文件或可运行程序的名称“ 错误的方法
  • Python 电商API 开发最佳实践
  • JAVA基础-集合(List与Map)
  • 19 QListWidget控件
  • 手动安装docsify
  • yaml语法详解
  • ubuntu下tmux安装
  • ssh打开远程vscode
  • Socket发送数据---winsock库和boost库
  • Qt Core学习日记——第七天QMetaObject(上)
  • 100、用简洁的语言描述一下:TCP的三次握手和四次挥手(不需要长篇大论)
  • 中南大学硕士论文latex版本全指导
  • RFC8470在HTTP中使用早期数据
  • macOS Big Sur 11.7.9 (20G1426) 正式版 ISO、PKG、DMG、IPSW 下载
  • 【LeetCode】62.不同路径
  • 使用序列化和反序列化函数archivedDataWithRootObject和unarchivedObjectOfClasses的使用和遇到问题及解决方案
  • python获取鼠标出颜色
  • Github Flow工作流简单介绍(以部署为中心的开发模式)