GH-2114 Add support for multiple binders to StreamBridge
Resolves #2114
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -683,7 +683,6 @@ public class WebSourceApplication {
|
||||
@RequestMapping
|
||||
@ResponseStatus(HttpStatus.ACCEPTED)
|
||||
public void delegateToSupplier(@RequestBody String body) {
|
||||
//processor.onNext(body);
|
||||
streamBridge.send("myBinidng", body);
|
||||
}
|
||||
}
|
||||
@@ -698,6 +697,32 @@ curl -H "Content-Type: text/plain" -X POST -d "hello from the other side" http:/
|
||||
|
||||
By showing two example we want to emphasize the approach will work with any type of foreign sources.
|
||||
|
||||
====== Output Content Type with StreamBridge
|
||||
|
||||
You can also provide specific content type if necessary with the following method signature `public boolean send(String bindingName, Object data, MimeType outputContentType)`.
|
||||
Or if you send data as a `Message`, its content type will be honored.
|
||||
|
||||
====== Using specific binder type with StreamBridge
|
||||
|
||||
Spring Cloud Stream supports multiple binder scenarios. For example you may be receiving data from Kafka and sending it to RabbitMQ.
|
||||
|
||||
For more information on multiple binders scenarios, please see <<Binders>> section and specifically <<Multiple Binders on the Classpath>>
|
||||
|
||||
In the event you are planning to use StreamBridge and have more then one binder configured in your application you must also tell StreamBridge
|
||||
which binder to use. And for that there are two more variations of `send` method:
|
||||
|
||||
[source, java]
|
||||
----
|
||||
public boolean send(String bindingName, @Nullable String binderType, Object data)
|
||||
|
||||
public boolean send(String bindingName, @Nullable String binderType, Object data, MimeType outputContentType)
|
||||
----
|
||||
|
||||
As you can see there is one additional argument that you can provide - `binderType`, telling BindingService which binder to use when creating dynamic binding.
|
||||
|
||||
NOTE: For cases where `spring.cloud.stream.source` property is used or the binding was already created under different binder, the `binderType`
|
||||
argument will have no effect.
|
||||
|
||||
===== Reactive Functions support
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user