我尝试将超过4 MB的消息发布给Kafka,但出现异常Confluent.Kafka.ProduceException`2:“代理:消息大小太大”。
Kafka在docker中运行。 这是来自docker-compose文件的Kafka配置:
kafka:
image: confluentinc/cp-kafka:5.3.1
ports:
- 9092:9092
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_MAX_REQUEST_SIZE: 10000000
KAFKA_MAX_MESSAGE_BYTES: 10000000
但是当我启动一个容器时,我会在日志中看到:
kafka_1 |INFO ProducerConfig values:
kafka_1 | max.request.size = 1048576
kafka_1 | [2019-10-09 13:04:48,146] INFO KafkaConfig values:
kafka_1 | message.max.bytes = 1000012
这意味着传递变量KAFKA_MAX_REQUEST_SIZE和KAFKA_MAX_MESSAGE_BYTES对confluentinc / cp-kafka映像无效。虽然,文档中没有说明这是可能的。
在我的应用程序中,我使用以下ProducerConfig创建生产者:
var config = new ProducerConfig
{
BootstrapServers = "localhost:9092",
ReceiveMessageMaxBytes = 10000000,
MessageMaxBytes = 10000000,
}
但是我仍然得到例外。
那么增加默认最大邮件大小的正确方法是什么?