v0.11.4
版本发布时间: 2018-03-28 22:36:19
confluentinc/librdkafka最新发布版本:v2.5.3(2024-09-02 22:32:10)
Maintenance release
Default changes
-
socket.max.fails
changed to1
to provide same functionality (fail request immediately on error) now when retries are working properly again. -
fetch.max.bytes
(new config property) is automatically adjusted to be >=message.max.bytes
, andreceive.message.max.bytes
is automatically adjusted to be >fetch.max.bytes
. (#1616)
New features
- Message Headers support (with help from @johnistan)
- Java-compatible Murmur2 partitioners (#1468, @barrotsteindev)
- Add PKCS#12 Keystore support -
ssl.keystore.location
(#1494, @AMHIT)
Noteworthy fixes
- Formalise and fix Producer retries and retry-ordering (#623, #1092, #1432, #1476, #1421)
- Ordering is now retained despite retries if
max.in.flight=1
. - Behaviour is now documented
- Ordering is now retained despite retries if
- Fix timeouts for retried requests and properly handle retries for all request types (#1497)
- Add and use
fetch.max.bytes
to limit total Fetch response size (KIP-74, #1616). Fixes "Invalid response size" issues.
Enhancements
- Added
sasl.mechanism
andcompression.type
configuration property aliases for conformance with Java client. - Improved Producer performance
- C++: add c_ptr() to Handle,Topic,Message classes to expose underlying librdkafka object
- Honour per-message partition in produce_batch() if MSG_F_PARTITION set (@barrotsteindev, closes #1604)
- Added
on_request_sent()
interceptor - Added experimental flexible producer
queuing.strategy=fifo|lifo
- Broker address DNS record round-robin: try to maintain round-robin position across resolve calls.
- Set system thread name for internal librdkafka threads (@tbsaunde)
- Added more concise and user-friendly 'consumer' debug context
- Add
partitioner
(string) topic configuration property to set the builtin partitioners - Generate rdkafka-static.pc (pkg-config) for static linking
Fixes
- Fix producer memory leak on <0.11 brokers when compressed messageset is below copy threshold (closes #1534)
- CRC32C - fix unaligned access on ARM (@Soundman32)
- Fix read after free in buf_write_seek
- Fix broker wake up (#1667, @gduranceau)
- Fix consumer hang when rebalancing during commit (closes #1605, @ChenyuanHu)
- CMake fixes for Windows (@raulbocanegra)
- LeaveGroup was not sent on close when doing final offset commits
- Fix for consumer slowdown/stall on compacted topics where actual last offset < MsgSet.LastOffset (KAFKA-5443)
- Fix global->topic conf fallthru in C++ API
- Fix infinite loop on LeaveGroup failure
- Fix possible crash on OffsetFetch retry
- Incorporate compressed message count when deciding on fetch backoff (#1623)
- Fix debug-only crash on Solaris (%s NULL) (closes #1423)
- Drain broker ops queue on termination to avoid hang (closes #1596)
- cmake: Allow build static library (#1602, @proller)
- Don't store invalid offset as next one when pausing (#1453, @mfontanini)
- use #if instead of #ifdef / defined() for atomics (#1592, @vavrusa)
- fixed .lib paths in nuget packaging (#1587)
- Fixes strerror_r crash on alpine (#1580, @skarlsson)
- Allow arbitrary lengthed (>255) SASL PLAIN user/pass (#1691, #1692)
- Trigger ApiVersionRequest on reconnect if broker.version.fallback supports it (closes #1694)
- Read Fetch MsgAttributes as int8 (discovered by @tvoinarovskyi, closes #1689)
- Portability: stop using typeof in rdkafka_transport.c (#1708, @tbsaunde)
- Portability: replace use of #pragma once with header guards (#1688, @tbsaunde)
- mklove: add LIBS in reverse order to maintain dependency order
- Fix build when python is not available #1358