zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

kafka生产者发送消息可靠性

Kafka消息 发送 可靠性 生产者
2023-09-27 14:28:03 时间

前言

在实际业务场景下,为保证消息从producer能够准确无误的送达kafka的broker,kafka提供了针对消息ACK的几种级别,即broker对producer消息应答级别

kafka提供了3种ACK的应答机制

  • acks=0,生产者发送过来数据就不管了,可靠性较差,效率高;
  • acks=1,生产者发送过来数据Leader应答,可靠性中等,效率中等;
  • acks=-1,生产者发送过来数据Leader和ISR队列里面所有Follwer应答,可靠性高,效率低;

在生产环境中,acks=0很少使用;acks=1,一般用于传输普通日志,允许丢个别数据;acks=-1,一般用于传输和钱相关的数据,对可靠性要求比较高的场景。

下面用代码演示下消息的生产段的ACK配置代码

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class ProducerAck {

    public static void main(String[] args) throws Exception {

        // 1. 创建 kafka 生产者的配置对象
        Properties properties &