首页 > 其他分享 >kafka--Producer知识

kafka--Producer知识

时间:2022-09-20 09:55:59浏览次数:57  
标签:异步 Producer -- kafka 发送 批次 线程

Producer发送模式

  • 同步发送
  • 异步发送
  • 异步发送回调

Producer源码讲解

  • Producer发送流程:1.构建对象 2.发送消息
    image

  • KafkaProducer构建clientId,为了给metricConfig(上报指标),初始化Serializer,加载partition负载均衡器,初始化RecordAccumulator类似于计数器,守护线程

  • Producer是线程安全的

  • Producer批量发送,减少磁盘IO操作,kafka日志是追加的方式,保证顺序

  • Producer.send计算分区,计算批次,accumulator.append达到一定阈值就会发送

  • 创建批次,想批次追加消息

Producer发送原理

  • 直接发送
  • 负载均衡(kafka的数据是可以控制在哪个partition上)
  • 异步发送(内存里面积累数据,当数据达到一定的阈值/时间,就会按照批次发送)
    image

消息传递保障

  • 最多一次(收到0到1次)
  • 至少一次(收到1到多次)
  • 正好一次(有且仅有1次)

标签:异步,Producer,--,kafka,发送,批次,线程
From: https://www.cnblogs.com/dodogod/p/16709990.html

相关文章

  • sqlserver数据库批量新增修改类
    MSSqlServer数据库批量操作需要引用的命名空间usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Re......
  • MPLAB X IDE的安装及编译工具XC8的安装
    0.下载地址MaplabXhttps://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#tabsXC8https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-......
  • 盘点|免费好用的8款可视化工具
    数据可视化工具是一种将数据转换为可视的图表、图形、表格以及仪表板等的软件。那我们将数据进行可视化的意义是什么?自然是处理和分析复杂的信息,将其变得更为通俗易懂的形......
  • msys2使用笔记(windows下使用linux常用命令)
    支持原创,转发请备注来源目录windows环境msys2msys2介绍msys2的优势获取msys2安装msys2msys2的配置msys2更新下载源msys2配置到windows右键快捷方式msys2在指定路径打开msys......
  • 数字自增长效果
    document.addEventListener('DOMContentLoaded',function(){   varifNumDynamic=true   document.onscroll=function(){    varscroll......
  • 学习vue3-先抄写文档
      当style标签带有scopedattribute的时候,它的css只会影响当前组件的元素。它的实现方式是通过PostCSS将当前组件添加属性,css选择器都添加对应属性选择器。子组......
  • leaflet下对arcgis server的服务进行属性识别
    使用arcgis自己的服务是可以的,但其实也可以esri-leaflet.js这个提供的插件会方便很多,贴上插件地址:https://esri.github.io/esri-leaflet/api-reference/tasks/identify-fe......
  • pod内部java.net.UnknownHostException
    周日中午接应用电话,反馈有个应用异常,查看pod日志中,出现以下的报警java.net.UnknownHostException:channel-ndc-imp查看channel-ndc-imp服务,是正常的。尝试登录某个pod,n......
  • 鼠标轮滚动效果
      constnavbar=document.querySelector('.nav-fixed');  varnavLink=document.querySelectorAll(".nav-link");  vara=document.getElementById(1......
  • 聊聊如何利用管道模式来进行业务编排(下篇)
    前言上篇文章我们介绍利用管道模式来进行业务编排的2种实现方式。本文又来介绍其他实现方式实现方式方式一:利用springboot自动装配1、新建管道实体@Data@AllArgsCo......