【问题标题】:Kafka --> spring cloud Data Flow(RabbitMQ) --> KafkaKafka --> spring cloud 数据流(RabbitMQ) --> Kafka
【发布时间】:2021-08-21 21:06:31
【问题描述】:

我遇到的问题是使用 Spring Cloud 数据流 (SCDF) 通过环境移动数据以将数据传送到正确的位置。以下是情况:

  • 我有一个产品化版本的 Kafka,我只能订阅(只读)。 (3节点集群:node1:9092,node2:9092,node3:9092)
  • 我有一个 SCDF 实例在使用 RabbitMQ 主干的 Kubernetes 集群中运行(全部在一台服务器上)
  • 我有一个单节点 Kafka 服务器,正在用于另一家公司获取数据(受 SSL 保护)

查看 SCDF 时,我没有看到将 Kafka 定义为源并读取到处理器(将是自定义的)并写入到不同的 Kafka 实例的方法。

【问题讨论】:

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


    【解决方案1】:

    您可以将命名目标与多绑定器支持一起使用。

    RabbitMQ Binding -> processor -> named Kafka Destination
    

    https://dataflow.spring.io/docs/feature-guides/streams/taps/#tapping-a-stream

    在 Spring Cloud Stream 术语中,命名目标是消息传递中间件或流平台中的特定目标名称。它可以是 RabbitMQ 中的交换或 Apache Kafka 中的主题。在 Spring Cloud Data Flow 中,命名的目标可以被视为直接源或接收器,具体取决于它是作为发布者还是消费者。您可以使用来自目标(例如:Kafka 主题)的数据,也可以为目标(例如,Kafka 主题)生成数据。 Spring Cloud Data Flow 允许您使用命名的目标支持在消息传递中间件上构建往返于目标的事件流管道。

    http > :user-click-events
    
    :user-click-events > jdbc
    

    https://docs.spring.io/spring-cloud-stream/docs/3.1.3/reference/html/spring-cloud-stream.html#multiple-binders

    当类路径中存在多个绑定器时,应用程序必须指明每个目标绑定要使用哪个绑定器。

    所以:

    :RO_Kafka > processor_1 | ... | processor_n > :otherKafka
    

    processor_1processor_n 配置了多绑定器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-05
      • 2016-11-27
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 2021-07-01
      • 1970-01-01
      相关资源
      最近更新 更多