GH-2510: RabbitMQ Super Streams Concurrency

Add support for concurrency.

Use try with resources in stream tests.

Fix Test with Latest Boot

Resolves #2524
This commit is contained in:
Gary Russell
2022-10-05 13:22:16 -04:00
committed by Oleg Zhurakousky
parent c617f7e841
commit d93a4a0c4a
7 changed files with 198 additions and 73 deletions

View File

@@ -420,7 +420,7 @@ Default: `1`.
Basic support for the https://rabbitmq.com/stream.html[RabbitMQ Stream Plugin] is now provided.
To enable this feature, you must add the `spring-rabbit-stream` jar to the class path - it must be the same version as `spring-amqp` and `spring-rabbit`.
IMPORTANT: The consumer properties described above are not supported when you set the `containerType` property to `stream`; `concurrency` is also not supported at this time.
IMPORTANT: The consumer properties described above are not supported when you set the `containerType` property to `stream`; `concurrency` is supported for super streams only.
Only a single stream queue can be consumed by each binding.
To configure the binder to use `containerType=stream`, Spring Boot will automatically configure an `Environment` `@Bean` from the application properties.
@@ -493,12 +493,13 @@ public Consumer<Thing> input() {
spring.cloud.stream.bindings.input-in-0.destination=super
spring.cloud.stream.bindings.input-in-0.group=test
spring.cloud.stream.bindings.input-in-0.consumer.instance-count=3
spring.cloud.stream.bindings.input-in-0.consumer.concurrency=3
spring.cloud.stream.rabbit.bindings.input-in-0.consumer.container-type=STREAM
spring.cloud.stream.rabbit.bindings.input-in-0.consumer.super-stream=true
----
====
The framework will create a super stream named `super`, with 3 partitions.
The framework will create a super stream named `super`, with 9 partitions.
Up to 3 instances of this application can be deployed.
=== Advanced Listener Container Configuration