SCDF使用企业中间件编写自定义云流应用程序

时间:2019-09-17 18:06:25

标签: spring apache-kafka spring-cloud-stream spring-cloud-dataflow

我需要使用Spring Cloud Data Flow(SCDF)编写Steam应用程序。

作为中间件,我看到了Spring Cloud Stream支持的现成列表。

但是,我们有一个自定义版本的kafka(ABC中间件),并添加了更多安全功能。我们有一个SDK可供使用。

我正在尝试创建自定义的Spring Cloud流应用程序以使用此ABC中间件。由于更多的绑定对我们来说是抽象的,我们只是使用SDK创建消费者和生产者,所以我试图了解如何实现这一目标。甚至有可能对其进行自定义?

我看到以下选项

  • 编写自己的Binder接口实现
  • 创建META_INF / spring.binders以提供新的资料夹信息
  • 在application.yml中定义粘合剂属性

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对象的选项,并且具有诸如侦听器支持或轮询支持的实现。 我不确定如何整合这些。

任何指向正确方向的帮助都是有帮助的。

0 个答案:

没有答案