java-kafka-client icon indicating copy to clipboard operation
java-kafka-client copied to clipboard

HeadersMapInjectAdapter wastes space in headers

Open william-tran opened this issue 3 years ago • 0 comments

https://github.com/opentracing-contrib/java-kafka-client/blob/release-0.1.15/opentracing-kafka-client/src/main/java/io/opentracing/contrib/kafka/HeadersMapInjectAdapter.java#L38

@Override
public void put(String key, String value) {    
    headers.add(key, value.getBytes(StandardCharsets.UTF_8));
}

This just appends headers to the end of the list, and inject can happen repeatedly in processing a message. With baggage, this can result it a lot of repeated data.

We could instead headers.remove(key).add(key, value.getBytes(StandardCharsets.UTF_8)); which trades an iteration over all headers and potential arraylist removals for each key.

william-tran avatar Jun 15 '21 19:06 william-tran