Kafka学习(2)-----生产者

本文深入探讨Kafka生产者,包括创建实例、消息构建与发送(同步、异步、发后即忘),前处理如拦截器、序列化和分区器的使用,以及生产者的工作原理,如消息累加器和InFlightClient的作用。
摘要由CSDN通过智能技术生成

思维导图:

引言

    本文的主要内容是对Kafka生产者的介绍,包括以下三个部分:

  1. Kafka生产者的使用流程:包括如何创建实例,构建消息并发送
  2. Kafka生产者的前处理:包括拦截器,序列化和分区器
  3. Kafka生产者的原理:包括整体的架构,元数据等

 

一.Kafka生产者的使用流程

    Kafka生产者的基本使用其实和上一节中没什么太大的差别,只是对其中的配置信息进行了更为详细的描述,并使用了更加规范性的代码。

1.1 创建实例

    此处实例的创建只配置了必须也是最基本的三个参数,看如下代码:

    /**
     * 获取生产者对象
     *
     * @return : org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,java.lang.String>
     * @author : zhouhao
     * @date : 2019/5/22 20:48
     */
    private KafkaProducer<String,String> generateProducer(){
        //配置生产者必要参数
        Properties properties = new Properties();
        //Kafka集群地址
        properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,BROKE_LIST);
        //key的序列化对象
        properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
        //value的序列化对象
        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());

        return new KafkaProducer<>(properties);
    }

1.2 消息构建

    在上一节中,我们构建消息时只输入了主题信息Topic和内容信息value。其实,一条消息对象之中还可以含有其他的信息,他们共同描述了一条消息。构建消息时使用不同的构造方法即可根据输入参数进行消息构建,如下代码中依然只用topic和value进行消息构建

/**
     * 构建消息,除了这两个参数外,其实还有partition-分区,header-头信息,key-用于分区的关键字,timestamp-时间戳等字段
     * 可以使用其他的构造方法进行构建
     *
     * @param 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值