spring - 单个微服务中是否可以有多个流?
问题描述
单个微服务中可能有多个流吗?
这是我的 yaml。
bindings:
input:
destination: topic1
content-type: application/*+avro
output:
destination: topic2
content-type: application/*+avro
我可以有更多的输入和输出吗?
我可以为每个流设置不同的序列化类吗?
producer-properties:
key.serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
value.serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
解决方案
是的,只需添加新的绑定:
bindings:
input:
destination: topic1
content-type: application/*+avro
inputStream1:
destination: topic_input_1
inputStream2:
destination: topic_input_2
output:
destination: topic2
content-type: application/*+avro
output2:
destination: output_topic_2
并提供 EnableBinding 和其他额外的注解,如 StreamListener:
@EnableBinding(MultipleDesBinding.class)
public class YourApplication {
@StreamListener
@SendTo("output")
public KStream<String, String> topology1(@Input("inputStream") KStream<String, String> inputKStream,
@Input("inputStream1") KStream<String, String> inputStream1KStream) {
}
@StreamListener
@SendTo("output2")
public KStream<String, Long> topology2(@Input("inputStream2") KStream<String, String> inputStream2KStream) {
}
}
interface MultipleDesBinding {
@Input("input")
KStream<?, ?> input();
@Input("inputStream1")
KStream<?, ?> inputStream1();
@Input("inputStream2")
KStream<?, ?> inputStream2();
@Output("output")
KStream<?, ?> output();
@Output("output2")
KStream<?, ?> output2();
}
您可以在文档中详细查看:命令式编程模型。
推荐阅读
- ios - SendBird:搜索个人聊天和群聊
- css - 如何在我的网站上停止水平拖动
- java - URLConnection Androidstudio
- flutter - 应用 columnWidths 时 Flutter Table 列呈现奇怪
- c# - BeginTransaction() 与 BeginTransactionAsync() 的性能影响是什么
- swiftui - SwiftUI 对同一自定义警报操作的不同操作
- java - Spring Boot 异步编程
- google-sheets - 在 2 列中查找相同的单词
- python - 为什么这个 PyQt5 Qlistwidget 信号 + 插槽不起作用?
- c++ - 使用 boost::chrono::system_clock 获取时间会导致链接器错误