Update SNAPSHOT to 3.2.0-M1
This commit is contained in:
66
README.adoc
66
README.adoc
@@ -185,6 +185,7 @@ Default: none - the broker will generate random consumer tags.
|
||||
containerType::
|
||||
Select the type of listener container to be used.
|
||||
See https://docs.spring.io/spring-amqp/reference/html/_reference.html#choose-container[Choosing a Container] in the Spring AMQP documentation for more information.
|
||||
Also see <<rabbitmq-stream>>.
|
||||
+
|
||||
Default: `simple`
|
||||
deadLetterQueueName::
|
||||
@@ -434,6 +435,62 @@ Not supported when the `containerType` is `direct`.
|
||||
+
|
||||
Default: `1`.
|
||||
|
||||
[[rabbitmq-stream]]
|
||||
=== Initial Support for the RabbitMQ Stream Plugin
|
||||
|
||||
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.
|
||||
Only a single stream queue can be consumed by each binding.
|
||||
|
||||
To configure the binder to use `containerType=stream`, you must add an `Environment` `@Bean` and, optionally, a customizer to customize the listener container.
|
||||
|
||||
====
|
||||
[source, java]
|
||||
----
|
||||
@Bean
|
||||
Environment streamEnv() {
|
||||
return Environment.builder()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
ListenerContainerCustomizer<MessageListenerContainer> customizer() {
|
||||
return (cont, dest, group) -> {
|
||||
StreamListenerContainer container = (StreamListenerContainer) cont;
|
||||
container.setConsumerCustomizer(builder -> {
|
||||
builder.offset(OffsetSpecification.first());
|
||||
});
|
||||
// ...
|
||||
};
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
The stream name (for the purpose of offset tracking) is set to the binding `destination + '.' + group`.
|
||||
If you decide to use manual offset tracking, the `Context` is available as a message header:
|
||||
|
||||
====
|
||||
[source, java]
|
||||
----
|
||||
int count;
|
||||
|
||||
@Bean
|
||||
public Consumer<Message<?>> input() {
|
||||
return msg -> {
|
||||
System.out.println(msg);
|
||||
if (++count % 1000 == 0) {
|
||||
Context context = msg.getHeaders().get("rabbitmq_streamContext", Context.class);
|
||||
context.consumer().store(context.offset());
|
||||
}
|
||||
};
|
||||
}
|
||||
----
|
||||
====
|
||||
|
||||
Refer to the https://rabbitmq.github.io/rabbitmq-stream-java-client/stable/htmlsingle/[RabbitMQ Stream Java Client documentation] for information about configuring the environment and consumer builder.
|
||||
|
||||
=== Advanced Listener Container Configuration
|
||||
|
||||
To set listener container properties that are not exposed as binder or binding properties, add a single bean of type `ListenerContainerCustomizer` to the application context.
|
||||
@@ -977,18 +1034,17 @@ public class Application {
|
||||
if (correlation.getReturnedMessage() != null) {
|
||||
log.error("Message for " + correlation.getPayload() + " was returned ");
|
||||
|
||||
// try to re-publish, send a DLQ, etc
|
||||
// throw some exception to invoke binder retry/error handling
|
||||
|
||||
}
|
||||
}
|
||||
catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
e.printStackTrace();
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
catch (ExecutionException | TimeoutException e) {
|
||||
e.printStackTrace();
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1044,7 +1100,7 @@ There are a number of rabbit-specific binding properties that allow you to modif
|
||||
|
||||
If you have an existing exchange/queue that you wish to use, you can completely disable automatic provisioning as follows, assuming the exchange is named `myExchange` and the queue is named `myQueue`:
|
||||
|
||||
* `spring.cloud.stream.bindings.<binding name>.destination=myExhange`
|
||||
* `spring.cloud.stream.bindings.<binding name>.destination=myExchange`
|
||||
* `spring.cloud.stream.bindings.<binding name>.group=myQueue`
|
||||
* `spring.cloud.stream.rabbit.bindings.<binding name>.consumer.bindQueue=false`
|
||||
* `spring.cloud.stream.rabbit.bindings.<binding name>.consumer.declareExchange=false`
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-parent</artifactId>
|
||||
<version>3.2.0-SNAPSHOT</version>
|
||||
<version>3.2.0-M1</version>
|
||||
</parent>
|
||||
<packaging>jar</packaging>
|
||||
<name>spring-cloud-stream-binder-rabbit-docs</name>
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|spring.cloud.stream.dynamic-destinations | `[]` | A list of destinations that can be bound dynamically. If set, only listed destinations can be bound.
|
||||
|spring.cloud.stream.function.batch-mode | `false` |
|
||||
|spring.cloud.stream.function.bindings | |
|
||||
|spring.cloud.stream.function.definition | | Definition of functions to bind. If several functions need to be composed into one, use pipes (e.g., 'fooFunc\|barFunc')
|
||||
|spring.cloud.stream.instance-count | `1` | The number of deployed instances of an application. Default: 1. NOTE: Could also be managed per individual binding "spring.cloud.stream.bindings.foo.consumer.instance-count" where 'foo' is the name of the binding.
|
||||
|spring.cloud.stream.instance-index | `0` | The instance id of the application: a number from 0 to instanceCount-1. Used for partitioning and with Kafka. NOTE: Could also be managed per individual binding "spring.cloud.stream.bindings.foo.consumer.instance-index" where 'foo' is the name of the binding.
|
||||
|spring.cloud.stream.instance-index-list | | A list of instance id's from 0 to instanceCount-1. Used for partitioning and with Kafka. NOTE: Could also be managed per individual binding "spring.cloud.stream.bindings.foo.consumer.instance-index-list" where 'foo' is the name of the binding. This setting will override the one set in 'spring.cloud.stream.instance-index'
|
||||
|
||||
6
pom.xml
6
pom.xml
@@ -2,16 +2,16 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-parent</artifactId>
|
||||
<version>3.2.0-SNAPSHOT</version>
|
||||
<version>3.2.0-M1</version>
|
||||
<packaging>pom</packaging>
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>3.1.0-SNAPSHOT</version>
|
||||
<version>3.1.0-M1</version>
|
||||
<relativePath />
|
||||
</parent>
|
||||
<properties>
|
||||
<spring-cloud-stream.version>3.2.0-SNAPSHOT</spring-cloud-stream.version>
|
||||
<spring-cloud-stream.version>3.2.0-M1</spring-cloud-stream.version>
|
||||
<java.version>1.8</java.version>
|
||||
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError>
|
||||
<maven-checkstyle-plugin.failsOnViolation>true
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-parent</artifactId>
|
||||
<version>3.2.0-SNAPSHOT</version>
|
||||
<version>3.2.0-M1</version>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
|
||||
<description>Spring Cloud Starter Stream Rabbit</description>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-parent</artifactId>
|
||||
<version>3.2.0-SNAPSHOT</version>
|
||||
<version>3.2.0-M1</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-parent</artifactId>
|
||||
<version>3.2.0-SNAPSHOT</version>
|
||||
<version>3.2.0-M1</version>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-test-support</artifactId>
|
||||
<description>Rabbit related test classes</description>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-binder-rabbit-parent</artifactId>
|
||||
<version>3.2.0-SNAPSHOT</version>
|
||||
<version>3.2.0-M1</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
Reference in New Issue
Block a user