我需要使用Spring Cloud Data Flow(SCDF)编写Steam应用程序。
作为中间件,我看到了Spring Cloud Stream支持的现成列表。
但是,我们有一个自定义版本的kafka(ABC中间件),并添加了更多安全功能。我们有一个SDK可供使用。
我正在尝试创建自定义的Spring Cloud流应用程序以使用此ABC中间件。由于更多的绑定对我们来说是抽象的,我们只是使用SDK创建消费者和生产者,所以我试图了解如何实现这一目标。甚至有可能对其进行自定义?
我看到以下选项
CustomBinder
public class CustomBinder implements Binder<SubscribableChannel, ConsumerProperties, ProducerProperties> {
@Override
public Binding<SubscribableChannel> bindConsumer(String name, String group, SubscribableChannel inboundBindTarget, ConsumerProperties consumerProperties) {
//TODO:
return null;
}
@Override
public Binding<SubscribableChannel> bindProducer(String name, SubscribableChannel outboundBindTarget, ProducerProperties producerProperties) {
//TODO:
return null;
}
}
CustomBinderConfig
@Configuration
public class CustomBinderConfig {
@Bean
CustomBinder customBinder(){
return new customBinder();
}
}
spring.binders
custombinder:com.XYZ.springcloudstreambinder.CustomBinderConfig
application.properties
spring.cloud.stream.bindings.input.destination= XYZ_EVENTS
spring.cloud.stream.bindings.input.group= XYZ_GROUP
spring.cloud.stream.bindings.input.binder= custombinder
spring.cloud.stream.bindings.output.destination= XYZ_EVENTS
spring.cloud.stream.bindings.output.group= XYZ_GROUP
spring.cloud.stream.bindings.output.binder= custombinder
spring.cloud.stream.binders.custombinder.type= custombinder
我们的自定义中间件SDK仅具有创建Consumer和Producer对象的选项,并且具有诸如侦听器支持或轮询支持的实现。 我不确定如何整合这些。
任何指向正确方向的帮助都是有帮助的。