kafka-python v1.4.7 Release Notes

Release Date: 2019-09-30 // over 4 years ago
  • 1.4.7 (Sep 30, 2019)

    ๐Ÿš€ This release is focused on KafkaConsumer performance, Admin Client
    ๐Ÿ‘Œ improvements, and Client concurrency. The KafkaConsumer iterator implementation
    ๐Ÿ“Š has been greatly simplified so that it just wraps consumer.poll(). The prior
    ๐Ÿš€ implementation will remain available for a few more releases using the optional
    KafkaConsumer config: legacy_iterator=True . This is expected to improve
    consumer throughput substantially and help reduce heartbeat failures / group
    rebalancing.

    Major thanks to @carsonip @Baisang @iv-m @davidheitman @cardy31 @ulrikjohansson @iAnomaly @Wayde2014 @ossdev07 @commanderdishwasher @justecorruptio @melor @rustyrothwurt @sachiin @jacky15 and @rikonen for submitting PRs; thanks as well to everyone that
    submitted bug reports and issues, and to @jeffwidman and @tvoinarovskyi for code
    โœ… reviews, comments, testing, debugging, and helping to maintain kafka-python!

    Client

    • Send socket data via non-blocking IO with send buffer (@dpkp / PR #1912)
    • Rely on socket selector to detect completed connection attempts (@dpkp / PR #1909)
    • ๐Ÿ‘Œ Improve connection lock handling; always use context manager (@melor @dpkp / PR #1895)
    • โฌ‡๏ธ Reduce client poll timeout when there are no in-flight requests (@dpkp / PR #1823)

    KafkaConsumer

    • Do not use wakeup when sending fetch requests from consumer (@dpkp / PR #1911)
    • ๐Ÿ“Š Wrap consumer.poll() for KafkaConsumer iteration (@dpkp / PR #1902)
    • ๐Ÿ‘ Allow the coordinator to auto-commit on old brokers (@justecorruptio / PR #1832)
    • โฌ‡๏ธ Reduce internal client poll timeout for (legacy) consumer iterator interface (@dpkp / PR #1824)
    • ๐Ÿ‘‰ Use dedicated connection for group coordinator (@dpkp / PR #1822)
    • ๐Ÿ”’ Change coordinator lock acquisition order (@dpkp / PR #1821)
    • Make partitions_for_topic a read-through cache (@Baisang / PR #1781,#1809)
    • ๐Ÿ›  Fix consumer hanging indefinitely on topic deletion while rebalancing (@commanderdishwasher / PR #1782)

    ๐Ÿ›  Miscellaneous Bugfixes / Improvements

    • ๐Ÿ›  Fix crc32c avilability on non-intel architectures (@ossdev07 / PR #1904)
    • 0๏ธโƒฃ Load system default SSL CAs if ssl_cafile is not provided (@iAnomaly / PR #1883)
    • Catch py3 TimeoutError in BrokerConnection send/recv (@dpkp / PR #1820)
    • โž• Added a function to determine if bootstrap is successfully connected (@Wayde2014 / PR #1876)

    Admin Client

    • โž• Add ACL api support to KafkaAdminClient (@ulrikjohansson / PR #1833)
    • Add sasl_kerberos_domain_name config to KafkaAdminClient (@jeffwidman / PR #1852)
    • ๐Ÿ“š Update security_protocol config documentation for KafkaAdminClient (@cardy31 / PR #1849)
    • Break FindCoordinator into request/response methods in KafkaAdminClient (@jeffwidman / PR #1871)
    • Break consumer operations into request / response methods in KafkaAdminClient (@jeffwidman / PR #1845)
    • Parallelize calls to _send_request_to_node() in KafkaAdminClient (@davidheitman / PR #1807)

    ๐Ÿ“š Test Infrastructure / Documentation / Maintenance

    • โž• Add Kafka 2.3.0 to test matrix and compatibility docs (dpkp / PR #1915)
    • โœ… Convert remaining KafkaConsumer tests to pytest (@jeffwidman / PR #1886)
    • โฌ†๏ธ Bump integration tests to 0.10.2.2 and 0.11.0.3 (@jeffwidman / #1890)
    • โœ… Cleanup handling of KAFKA_VERSION env var in tests (@jeffwidman / PR #1887)
    • โœ… Minor test cleanup (@jeffwidman / PR #1885)
    • โœ… Use socket.SOCK_STREAM in test assertions (@iv-m / PR #1879)
    • Sanity test for consumer.topics() and consumer.partitions_for_topic() (@Baisang / PR #1829)
    • ๐Ÿ“Š Cleanup seconds conversion in client poll timeout calculation (@jeffwidman / PR #1825)
    • โœ‚ Remove unused imports (@jeffwidman / PR #1808)
    • Cleanup python nits in RangePartitionAssignor (@jeffwidman / PR #1805)
    • โšก๏ธ Update links to kafka consumer config docs (@jeffwidman)
    • ๐Ÿ›  Fix minor documentation typos (@carsonip / PR #1865)
    • โœ‚ Remove unused/weird comment line (@jeffwidman / PR #1813)
    • ๐Ÿ”– Update docs for api_version_auto_timeout_ms (@jeffwidman / PR #1812)