美文网首页
kafka设置发送消息的大小

kafka设置发送消息的大小

作者: 程序媛啊 | 来源:发表于2018-03-16 23:40 被阅读0次

一、kafka默认的发送一条消息的大小是1M,如果不配置,当发送的消息大于1M是,就会报错

[2018-07-03 14:49:38,411] ERROR Error when sending message to topic testTopic with key: null, value: 2095476 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.RecordTooLargeException: The message is 2095510 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration.

二、具体配置

1、 kafka topic

/bin/kafka-topics.sh --zookeeper 192.168.6.102:2181 --alter --topic testTopic --config max.message.bytes=52428800

2、server.properties中添加

message.max.bytes=5242880(5M)
replica.fetch.max.bytes=6291456(6M)每个分区试图获取的消息字节数。要大于等于message.max.bytes

3、producer.properties中添加

max.request.size = 5242880 (5M)请求的最大大小为字节。要小于 message.max.bytes

4、consumer.properties中添加

fetch.message.max.bytes=6291456(6M)每个提取请求中为每个主题分区提取的消息字节数。要大于等于message.max.bytes

5、在生产端使用java发送消息

public static void main(String[] args) {
        Properties props = new Properties();
        props.put("metadata.broker.list", "node1:9092");
        props.put("serializer.class", "kafka.serializer.StringEncoder");
        // key.serializer.class默认为serializer.class
        props.put("key.serializer.class", "kafka.serializer.StringEncoder");
        props.put("request.required.acks", "1");
        props.put("max.request.size", "52428800");
        ProducerConfig config = new ProducerConfig(props);
        Producer<String, String> producer = new Producer<String, String>(config);
            producer.send(new KeyedMessage<String, String>(
                    "testkafka", "jack",
                    "rose"));
        producer.close();
    }

三、重启

1、更改完配置要重启kafka server才能生效

1.1、先停止kafka.
a、通过命令:bin/kafka-server-stop.sh
b、找到kafka进程,命令:ps -ef | grep kafka,然后kill掉
1.2、启动kafka server:
nohup bin/kafka-server-start.sh config/server.properties&

2、重新执行生产端的命令

./bin/kafka-console-producer.sh  --broker-list 192.168.6.102:8997 --topic testTopic < /usr/local/test.txt --producer.config /usr/local/kafka10/config/producer.properties

注:在Linux控制台发送消息时,控制台有输入字数限制,不利于测试,所以将大的消息放在文本文件里test.txt,通过< /usr/local/test.txt追加到控制台

3、重新执行消费断的命令

./bin/kafka-console-consumer.sh --zookeeper 192.168.6.102:2181 --topic testTopic --consumer.config config/consumer.properties

相关文章

  • kafka设置发送消息的大小

    一、kafka默认的发送一条消息的大小是1M,如果不配置,当发送的消息大于1M是,就会报错 二、具体配置 1、 k...

  • Kafka 生产者概述

    生产者:往消息队列里推送消息的应用 发送消息的过程 Kafka 生产者发送消息的过程: Kafka 会将发送消息包...

  • Kafka 消息发送

    kafka是一种消息系统,将数据从一个应用程序传输到另外一个应用程序,分布式消息传递基于可靠消息队列的概念。大多数...

  • Kafka系列4-Kafka API

    一. Producer API 消息发送流程  Kafka 的 Producer 发送消息采用的是异步发送的方式。...

  • Kafka常用命令

    启动Kafka并生产消费消息 启动ZooKeeper 启动Kafka 查看启动后kafka的版本 生产者发送消息 ...

  • Kafka学习笔记(三)Kafka API

    1. Producer API 消息发送流程 Kafka的Producer发送消息采用的是异步发送的方式。在消息发...

  • Kafka的消息格式及offset是如何设置的

    Kafka的offset是如何设置的? 答:是生产者设置的,生产者在发送消息的时候,为每条消息生成一个唯一的off...

  • kafka-可靠性和一致性

    数据可靠性 Producer往Broker发送消息 为了让用户设置数据可靠性,kafka在Producer里面体用...

  • KAFKA 常用API

    1、Producer API 1.1 消息发送流程 kafka的Producer发送消息采用的是异步发送的方式。在...

  • kafka发送消息分区选择策略

    发送kafka:(版本0.10.11) kafka 生产者发送消息分区选择策略 通过跟踪send方法,发现Kafk...

网友评论

      本文标题:kafka设置发送消息的大小

      本文链接:https://www.haomeiwen.com/subject/fildqftx.html