我有一个流处理器,用于处理从 KafkaInputTopic
到OutputTopic
. 此外,我有多个租户需要进行此处理。我们将它们称为租户 A 和租户 B,但应用程序可能需要处理十多个租户。输入和输出主题遵循命名约定:A-输入,B-输入,...和A-输出,B-输出...
函数定义如下:
@Configuration
public class StreamProcessorConfig {
@Bean
public Function<KStream<String, InputType>, KStream<String, OutputType>> myfunctiondefinition() {
return inputTypeStream -> inputTypeStream.map((String k, InputType v) -> {
return KeyValue.pair(k, OutputType.createFrom(v));
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的 application.yaml 现在为租户 A 配置流应用程序:
tenant: A
spring.cloud.function.definition: myfunctiondefinition
spring.cloud.stream.kafka.streams.binder.functions.myfunctiondefinition:
applicationId: ${spring.application.name}-myfunctiondefinition
spring.cloud.stream.bindings.myfunctiondefinition-in-0:
destination: ${tenant}-input
spring.cloud.stream.bindings.myfunctiondefinition-out-0:
destination: ${tenant}-output
Run Code Online (Sandbox Code Playgroud)
如何修改配置为租户B添加实例?当然,我可以复制 myfunctiondefinition() 以及所有配置键,但我正在寻找一种仅通过配置即可快速且干净地动态添加租户的方法。这可能吗?
注意:遗憾的是,无法为租户 B 和其他租户运行应用程序的另一个实例。
java spring-cloud spring-cloud-stream apache-kafka-streams spring-kafka
我克隆了一个包含多个分支的大git存储库(大约3.7g).其中一个分支负责设置Windows Installer(InnoSetup),因此,在构建主程序之后,我需要切换到Installer分支.
是否有可能拥有一个存储库,但在两个不同的目录中有两个单独的HEAD,因此不必克隆存储库两次?