linkedin / li-apache-kafka-clients

li-apache-kafka-clients is a wrapper library for the Apache Kafka vanilla clients. It provides additional features such as large message support and auditing to the Java producer and consumer in the open source Apache Kafka.
BSD 2-Clause "Simplified" License
131 stars 52 forks source link

Fix behavior for li.large.message.segment.wrapping #158

Closed ambroff closed 4 years ago

ambroff commented 4 years ago

The li.large.message.segment.wrapping producer property is supposed to force the producer to always wrap messages in the large message envelope, even if the message is not larger than max.message.segment.bytes in size.

This patch addresses two issues with this:

  1. This option is enabled by default, which does not seem like an ideal default value for this option. Since it was effectively disabled due to a bug anyway, it's safe to make the new default value "false."
  2. The li.large.message.segment.wrapping property is honored and a single-segment large message is created, but the default serializer ends up just stripping away the large message segment envelope because the segment count is 1. This extra branch is removed so the feature works correctly.

Added an integration test that shows the li.large.message.segment.wrapping functioning correctly when enabled.