我想了解Spring Cloud Streams
的新功能模型是如何工作的,以及配置在引子下是如何工作的。
我无法弄清楚的一个属性是spring.cloud.stream.source
。
这个属性到底是什么意思?
我看不懂文档:
注意,前面的例子没有定义任何源函数(例如,Supplier bean)使框架没有创建触发器源绑定,这对于配置包含函数bean。因此,要触发源绑定的创建我们使用spring.cloud.stream.source属性,你可以在其中声明你的消息来源的名字。所提供的名称将用作触发器创建一个源绑定。
如果我不需要Supplier
怎么办?
源绑定到底是什么?它为什么重要?
如果我只想生成一个消息传递主题怎么办?我还需要这个属性吗?
我也不明白它在这里的样本中是如何使用的。
Spring cloud stream查找java.util
Function<?, ?
,Consumer<?>
,Supplier<?>
bean并为它们创建绑定。
在供应商的情况下,框架轮询供应商(默认每秒)并发送结果数据。
例如
@Bean
public Supplier<String> output() {
return () -> "foo";
}
spring.cloud.stream.bindings.output-out-0.destination=bar
将每秒发送foo
到目的bar
。
但是,如果你不需要轮询源,但你想配置一个绑定,你可以发送任意数据。输入"spring.cloud.stream.source
">
spring.cloud.stream.source=output
spring.cloud.stream.bindings.output-out-0.destination=bar
允许你发送任意数据到流桥
bridge.send("output-out-0", "test");
换句话说,它允许您配置一个或多个可以在StreamBridge
中使用的输出绑定;否则,当您发送到桥接时,绑定是动态创建的。