首页 > 其他分享 >一、kafka的工作流程

一、kafka的工作流程

时间:2024-03-25 15:25:18浏览次数:21  
标签:log producer 流程 kafka 工作 消息 leader 分区

工作流程:

如图所示哈,整个工作环境包括:

一个生产者(producer),

一个消费者组(含有三个消费者),

一个主题:A,

三个节点(broker),

三个分区(partition),

两个副本(副本数=leader数+follower数)。

 

大致流程:

  kafka中的消息都是面向topic进行分类,生产消息、消费消息都是面向topic。

  1、首先producer从集群中选择一个分区(可分配、可随机)的leader,然后producer将消息发送到leader; 

  2、leader接收到消息,将消息写入到本地文件;

    topic是逻辑的概念,而partition是物理上的概念,每个partition都有自己的对应的log文件,该log文件存储就是producer生产的数据。

    producer生产的数据会被不断地追加到该log文件末端(log文件太大时会被切分),且每条数据都有自己的offset。

  3、follower要主动从leader同步数据;

  4、followers将消息写入完成,通知leader发送ack(acknowledgement 确认收到);

  5、leader收到followers的ack后,向producer发送ack;

  6、消费者组中的每个消费者,都会实时记录自己消费的offset,消费消息;如果出错复活后,从上次的位置继续消费。

    图中所示,每个分区中都有消息的编号,成为偏移量(offset),他的作用是可以让消费者追踪消息在分区里的位置。

    注意:偏移量不是全局的,是分区独立使用的。

    因此,kafka只保证分区内消息的有序(生产顺序和消费顺序相同)

 流程图:

 

疑问:

  1、leader和follower的关系变化?怎么选leader?如果出问题怎么处理?

  2、文件怎么存储?文件结构?

  3、具体同步策略?

  4、分区有什么用?

标签:log,producer,流程,kafka,工作,消息,leader,分区
From: https://www.cnblogs.com/zmjc/p/18094053

相关文章

  • Surface salinity 提取流程-以西安市隋大兴唐长安城遗址为例
    写在前面:   Surfacesalinity(地表盐度)是对Landsat8数据所进行的反演处理;鉴于考虑到高浓、高盐环境会提高土壤溶液的渗透压,从而引起地表植物生理性干旱,严重时可导致水分从植物根细胞外渗直接导致死亡,而植物死亡后的根系腐化会对夯土遗址造成不可逆的生物性破坏。其实本......
  • 深度学习 - PyTorch基本流程 (代码)
    直接上代码importtorchimportmatplotlib.pyplotaspltfromtorchimportnn#创建dataprint("****CreateData****")weight=0.3bias=0.9X=torch.arange(0,1,0.01).unsqueeze(dim=1)y=weight*X+biasprint(f"NumberofXsamples:{len......
  • 动态规划的工作原理,实现方式,应用场景
    动态规划(DynamicProgramming,简称DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。工作原理:动态规划的工作原理基于两个核心概念:重叠子问题:在求解问题......
  • 六、使用jsPlumb实现流程图--Overlays使用
    一、Overlay的功能叠层(Overlay)可以是任意的DOM元素,用于叠加在Connection或Endpoint元素上--绝大部分都是用于叠加在线条上。jsPlumb把Overlay分为了五类:Arrow、Label、PlainArrow、Diamond、Custom。除了Custom和Label类型,其他三类就是jsPlumb提供的可以直接使用的图形;Label类......
  • 鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业
    随着企业的快速发展,招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求,建立一个公平、公开、公正的采购环境至关重要。在这个背景下,我们开发了一款电子招标采购软件,以最大限度地控制采购成本,提高招投标工作的公开性和透明性,并确保符合国家电子招投标......
  • VS Code关闭受限模式(工作区信任)
    一、发生情况0.新安装了VSCode但是打开的时候插件没有启用,同时上方有提示1.打开VSCode提示目前处于限制模式下2.点击了解详细信息后阅读说明得知:在受限模式下vscode将禁用或限制任务、调试、工作空间设置和扩展,来提高安全性。二、解决方案1.网上查了一下,决定关闭这......
  • drf : APIView执行流程和新的Request源码。APIView和Request对象分析
    DRF基本使用及执行流程分析1.继承APIView使用2.APIView的执行流程路由:path('Book1',view.Book.as_view())-->第二个参数是函数的内存地址-->APIView的as_view的执行结果-->本质还是用了View类的as_viewn内的viewc包函数,去掉了csrf的认证。-->当请求来......
  • 性能测试概述、目的、方面、类型、指标及测试流程
    什么是性能?性能:就是软件质量属性中的效率特性。主要关注:时间特性(系统处理用户请求的响应时间)、资源特性(系统运行过程中,系统资源的消耗情况。资源包括:CPU、内存、磁盘等) 什么是性能测试?性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程 ......
  • 爬虫工作量由小到大的思维转变---<第五十四章 Scrapy 降维挖掘---中间件系列(3)>
    前言:继续上一章:https://hsnd-91.blog.csdn.net/article/details/136977606本章主要介绍:UrlLengthMiddleware和DepthMiddleware是Scrapy框架中的关键Spider中间件,自此,爬虫中间件部分,一共5个算是全部介绍完毕!UrlLengthMiddleware的功能主要是设置和限制请求的URL长度......
  • 爬虫工作量由小到大的思维转变---<第五十五章 Scrapy 降维挖掘---中间件系列(4)>
    前言:爬虫中间件的文章:https://hsnd-91.blog.csdn.net/article/details/136977606https://hsnd-91.blog.csdn.net/article/details/136978069讲完了爬虫中间件(5个),现在就应该归类到下载中间件(11个)!下载器中间件的作用和重要性        下载器中间件是Scrapy......