首页 > 其他分享 >Kafka消息语义

Kafka消息语义

时间:2022-10-31 18:14:34浏览次数:70  
标签:Producer producer 语义 Kafka EOS 消息 序列号

  1. 最多一次:消息最多被消费一次,可能丢失
  2. 最少一次:消息最少被消费一次,可能被重复消费多次
  3. 精确一次:消息会且只会被消费一次

Producer默认语义

默认情况下,Kafka会在producer的消息写入到分区leader副本的磁盘日志文件中后发送响应,若producer没接收到响应,它会尝试重新发送,所以是最少一次语义。

Consumer默认语义

对于Consumer来说,提供什么语义就看什么时候提交位移。

  1. 获取消息->提交位移->处理:最多一次,因为提交位移后可能崩溃
  2. 获取消息->处理->提交位移:最少一次

幂等性Producer

用于支持精确一次语义(EOS)的一个手段。

发送给broker的每一批消息都被分配一个序列号,broker会将它保存到日志文件中,此外,每一个Producer会被分配一个PID(PID, 分区号)的二元组唯一确定一个最新消息序列号,broker接到消息时,根据(pid, 分区号)找到该Producer在该分区下的最新消息序列号S,若新消息的序列号小于等于S,拒接这个消息。

缺陷:无法实现多个producer共同提供EOS语义,无法提供producer多次会话间的EOS语义(重启后),只对单分区提供EOS语义,对consumer无法提供任何保证

Producer幂等性使用enable.idempotence开启

事务

未完...

标签:Producer,producer,语义,Kafka,EOS,消息,序列号
From: https://www.cnblogs.com/lilpig/p/16845247.html

相关文章

  • kafka服务端设置用户和密码登录及springboot访问实现
    1、先安装zookeeper,不会的可以去查一下。2、解压并放到目录下,改名tarzxvfkafka_2.12-2.4.0.tgz-C/datamvkafka_2.12-2.4.0kafka3、修改kafka配置文件server.......
  • Kafka数据重复和数据丢失的解决方案
     来源: https://blog.csdn.net/u011974797?type=blog 1.Kafka数据重复的解决方案:对每个生产者生成的每条数据,都添加由生产者id,分区号,随机的序列号组成的标识......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构kafka概述
    概述Kafk定义​ 传统上定义是一个分布式的基于发布/订阅模式的消息队列,主要应用在大数据实时处理场景,现在Kafka已经定义为一个分布式流平台,用于数据通道处理,数据流分析,......
  • 【flink学习系列1】sink文件到kafka
    importjava.util.Properties;importorg.apache.flink.api.common.RuntimeExecutionMode;importorg.apache.flink.api.common.serialization.SimpleStringSchema;im......
  • Kafka简明教程(三)Kafka‘s Ecosystem
    ​​LinkedinBurrow​​:Burrow是linkedin开源的一个监控ApacheKafka的工具,burrow可以将消费者滞后检查作为一项服务来对外提供。它监视所有消费者的承诺偏移量,并根据需要......
  • Spring Cloud Stream RabbitMQ消费消息失败
    丢弃消息这种场景生产环境应该不怎么用。入死信队列cloud:stream:bindings:hking:destination:hkingcontent-type:application/j......
  • kafka常用命令
    相关概念Brokerkafka节点,多个broker组成kafka集群。Topic即主题,kafka通过Topic对消息进行分类,发布到kafka的消息都需要指定Topic。Producer即消息生产者,向Broker发送......
  • MQ 消息队列
    1、MQMQ(MessageQueue)消息队列,FIFO数据结构。角色:生产者:产生数据(消息)并放入队列。存储信息:即消息的队列。消费者:两种获取信息的方式拉:到指定队列拉取消息。......
  • Kafka的启动与关闭
    以Windows系统为例启动zookeeper打开cmd并进入kafka的安装目录cdC:\BigData\kafka_2.13-3.3.1启动zookeeper并指定启动的配置文件bin\windows\zookeeper-server-st......
  • Eclipse 给 Java 应用创建 Run configuration 时找不到 main type 的错误消息
    我在Eclipse里选中com文件夹下选中一个.java文件,这个Java文件实现了​​publicstaticvoidmain(String[]args)​​方法,我想作为一个Java应用直接运行它。选......