Add share-groups module: Kafka 4.3.1 share groups with Spring for Apache Kafka 4.1.1

Six consumers on two partitions under a consumer group, a share group with the default
share.acquire.mode and a share group with record_limit; the three acknowledgement types and a
record that is released until Kafka stops redelivering it; a new share group starting at latest;
the ordering a share group gives up; and Spring Kafka's share containers in implicit and manual
acknowledgement modes. Tests run against a real broker (scripts/broker-up.sh) and write output/.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Lm655hdgDo5xsSLNomgdsy
This commit is contained in:
Claude
2026-10-13 02:43:36 +00:00
parent 4a5d3318bf
commit 5db56e70a0
23 changed files with 889 additions and 2 deletions
+29
View File
@@ -0,0 +1,29 @@
topic partitions = 2, consumers = 6, records = 60, work per record = 50 ms
== consumer group (6 KafkaConsumers, same group.id)
consumer-0 processed 26 records
consumer-1 processed 34 records
consumer-2 processed 0 records
consumer-3 processed 0 records
consumer-4 processed 0 records
consumer-5 processed 0 records
total processed = 60 in 1993 ms
== share group (6 ShareConsumers, default share.acquire.mode)
consumer-0 processed 26 records
consumer-1 processed 34 records
consumer-2 processed 0 records
consumer-3 processed 0 records
consumer-4 processed 0 records
consumer-5 processed 0 records
total processed = 60 in 1778 ms
== share group (6 ShareConsumers, share.acquire.mode=record_limit)
consumer-0 processed 9 records
consumer-1 processed 12 records
consumer-2 processed 10 records
consumer-3 processed 8 records
consumer-4 processed 9 records
consumer-5 processed 12 records
total processed = 60 in 681 ms
consumer group : consumers that received records = 2
share group, default share.acquire.mode: consumers that received records = 2
share group, acquire.mode=record_limit : consumers that received records = 6
(elapsed times vary from run to run; the shape, not the milliseconds, is the result)