首页 > 其他分享 >kafka分片与副本消息同步的详细策略[持久化]

kafka分片与副本消息同步的详细策略[持久化]

时间:2024-11-06 21:31:40浏览次数:1  
标签:副本 Log ACK kafka 消息 分片 Leader

kafka分片与副本消息同步的详细策略[持久化]

参考文章

  1. Kafka学习之路 (三)Kafka的高可用
    • Data Replication(副本策略)

1. 消息传递同步策略

  1. Producer在发布消息到某个Partition时,先通过ZooKeeper找到该Partition的Leader,然后无论该Topic的Replication Factor为多少,Producer只将该消息发送到该Partition的Leader。
  2. Leader会将该消息写入其本地Log。
  3. 每个Follower都从Leader pull数据。Follower在收到该消息并写入其Log后,向Leader发送ACK。一旦Leader收到了ISR中的所有Replica的ACK,该消息就被认为已经commit了,Leader将增加HW并且向Producer发送ACK。

为了提高性能,每个Follower在接收到数据后就立马向Leader发送ACK,而非等到数据写入Log中。因此,对于已经commit的消息,Kafka只能保证它被存于多个Replica的内存中,而不能保证它们被持久化到磁盘中,也就不能完全保证异常发生后该条消息一定能被Consumer消费。

Consumer读消息也是从Leader读取,只有被commit过的消息才会暴露给Consumer。

标签:副本,Log,ACK,kafka,消息,分片,Leader
From: https://www.cnblogs.com/qinzhi1209/p/18531091/detailed-strategy-of-synchronization-of-kafk

相关文章

  • Docker搭建kafka集群
    Docker搭建kafka集群kafka中的基本概念broker:消息中间件处理节点,一个broker就是一个kafka节点,一个或者多个broker就组成了一个kafka集群topic:kafka根据topic对消息进行归类,发布到kafka集群的每个消息,都要指定一个topicproducer:消息生产者,向broker发送消息的客户端consumer:消......
  • 【大数据学习 | kafka】消费者的分区分配规则
    1.概述上面我们提到过,消费者有的时候会少于或者多于分区的个数,那么如果消费者少了有的消费者要消费多个分区的数据,如果消费者多了,有的消费者就可能没有分区的数据消费。那么这个关系是如何分配的呢?现在我们知道kafka中存在一个coordinator可以管理这么一堆消费者,它可以帮......
  • 【大数据学习 | kafka】简述kafka的消费者consumer
    1.消费者的结构能够在kafka中拉取数据进行消费的组件或者程序都叫做消费者。这里面要涉及到一个动作叫做拉取。首先我们要知道kafka这个消息队列主要的功能就是起到缓冲的作用,比如flume采集数据然后交给spark或者flink进行计算分析,但是flume采用的就是消息的push方式,这个......
  • Linux中Kafka单机部署
    一、安装JDK请看:Linux中安装JDK1.8二、安装kafka下载地址 https://kafka.apache.org/downloads1、上传解压到/usr/local/kafkatar-zxvfkafka_2.13-2.6.3.tgzmvkafka_2.13-2.6.3kafka2、创建数据与日志目录zk数据目录(如依据配置中ip和server.[1|2|3]中的数字对应......
  • CentOS部署Kafka中间件
    CentOS部署Kafka中间件 1.环境及版本说明:系统版本:CentOSLinuxrelease7.6.1810(Core)Kafka版本:kafka_2.12-2.2.0JDK版本:1.8.0_2122.安装下载#wget下载安装包wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz#无法......
  • Kafka 消息丢失如何处理?
    今天给大家分享一个在面试中经常遇到的问题:Kafka消息丢失该如何处理?这个问题啊,看似简单,其实里面藏着很多“套路”。来,咱们先讲一个面试的“真实”案例。面试官问:“Kafka消息丢失如何处理?”小明一听,反问:“你是怎么发现消息丢失了?”面试官顿时一愣,沉默了片刻后,可能......
  • 从安装到实战:Spring Boot与kafka终极整合指南
    docker环境下部署kafka前置条件ApacheKafka自2.8.0版本开始引入了不依赖Zookeeper的“KafkaRaftMetadataMode”,本文章依然使用Zookeeper作为集群管理的插件。#拉去zookeeper镜像dockerpullwurstmeister/zookeeper#运行zookeeper容器dockerrun-d--na......
  • Kafka笔记系列-概念相关
    消息队列的主要功能连接服务、消息路由、消息传递、数据持久化、日志记录消息队列基本分类1、点对点生产者发送消息到队列中,消费者从队列中取出并消费。消息在消费以后,队列中不再有存储,队列可以有多个消费者,但是一个消息只能被一个消费者消费2、发布订阅模式生产者发布消息......
  • 如何选择最适合的消息队列?详解 Kafka、RocketMQ、RabbitMQ 的使用场景
    引言在日常开发中,消息队列已经成为业务场景中几乎不可或缺的一部分。无论是订单系统、日志收集、分布式事务,还是大数据实时流处理,消息队列都在支撑着这些关键环节。目前市面上常用的消息队列有三种(ActiveMQ虽然在企业集成中仍有应用,但由于性能和扩展性在高并发、大数据量......
  • Kafka 之消息广播消费
    前言:上一篇我们分享了Kafka批量消息相关的知识,本篇我们继续分享Kafka的广播消费。Kafka系列文章传送门Kafka简介及核心概念讲解SpringBoot整合Kafka详解Kafka@KafkaListener注解的详解及使用Kafka客户端工具使用分享【offsetexplorer】Kafka之消息同步......