web-dev-qa-db-ja.com

Kafka-ブローカー:メッセージサイズが大きすぎます

Message size too large例外、1 MBを超えるサイズのメッセージを送信しようとした場合。メッセージを生成しようとすると、クライアントアプリケーションにエラーが表示されます。少しグーグルで調べたところ、最大メッセージサイズを増やすには設定を変更する必要があることがわかりました。まあ、私は/kafka/config/server.propertiesファイル。次の2つの設定を追加しました。

message.max.bytes=15728640
replica.fetch.max.bytes=15728640

また、fetch.message.max.bytes=15728640から/kafka/config/consumer.propertiesファイル。他のすべての設定はデフォルトのままです。

kafkaサーバーを再起動しましたが、同じエラーが発生します。

P.S Kafka=バージョンは1.1.0です。

3
managerger

正しい構成ですが、プロデューサー側でmax.request.sizも設定する必要があります。

props.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, 15728640);

max.request.sizeリクエストの最大サイズ(バイト単位)。この設定により、プロデューサーが1つのリクエストで送信するレコードバッチの数が制限され、巨大なリクエストの送信が回避されます。これは、最大レコードバッチサイズの上限でもあります。

ブローカー側では、以下のパラメーターが機能するはずです。

message.max.bytesKafkaで許可されている最大レコードバッチサイズ。

replica.fetch.max.bytes各パーティションでフェッチしようとするメッセージのバイト数。これは絶対的な最大値ではありません。フェッチの最初の空でないパーティションの最初のレコードバッチがこの値よりも大きい場合でも、レコードバッチが返され、確実に進行できます。ブローカーによって受け入れられる最大レコードバッチサイズは、message.max.bytes(ブローカー構成)またはmax.message.bytes(トピック構成)によって定義されます。

ブローカー側ですでにmessage.max.bytesを設定している場合は不要なトピック側のmax.message.bytes

max.message.bytes-これは、ブローカーがトピックに追加できるメッセージの最大サイズです。このサイズは圧縮前に検証されています。 (デフォルトはブローカーのmessage.max.bytesです。)

屈折 https://kafka.Apache.org/documentation/

2
sun007