在 Spring Cloud Stream 中创建的 "tap" 将保存为 "named destination"
A "tap" created in Spring Cloud Stream will be saved as a "named destination"
我正在尝试理解 Spring Cloud Stream 中的概念。 “tap”和“named destination”这两个概念让我很困惑。
我正在尝试创建一个带有名为“some-source”的分流器的流:
然而,在我保存流后,它变成了“命名目的地”:
我的问题是:
- “点击”和“指定目的地”有什么区别?
- 为什么在保存流后“点击”会变成“指定目标”?
A named
目的地是消息传递系统中的目的地。例如,RabbitMQ 的 exchange
或 Apache Kafka 的 topic
。
Spring 当您将 inbound/outbound 绑定设置为特定目标名称时,Cloud Stream 负责创建这些 named
目标(例如 RabbitMQ 交换、Apache Kafka 主题)。
在 SCDF 中,当您创建流时,SCDF 使用特定语法配置这些目标名称 (.)。
例如,假设我创建了这样一个流:
S1=时间 | t1:变换 |日志
部署流 S1
后,您将看到使用以下名称创建的目的地(如果您使用 RabbitMQ 或 Apache Kafka,则它们将分别交换或主题):
S1.time
S1.t1
因为time
和transform
是生产者。
回答您的问题:
What's the difference between a "tap" and a "named destination"?
在 SCDF 中,tap
本质上是在生产者应用程序的出站端点上创建的 named
目的地。因此,当您在流 S1 的 time
输出上添加一个 tap 时,您将最终使用 named
目的地 S1.time
.
您可以在创建主流时(此处为 S1)创建 tap
,也可以稍后通过引用流的命名目标来创建新的 tap
流(此处S1.time,S1.t1)
Why would a "tap" become a "named destination" after saving the stream?
Spring Cloud Stream 有一个消费者组模型(灵感来自 Apache Kafka),它在它支持的所有绑定器中实现。这意味着,每当一个新的消费者绑定到消息系统的 destination
(比如 RabbitMQ 的 exchange
或 Apache Kafka 的 topic
)时,一个新的消费者组是为该目的地创建的。 tap
只是创建一个新流,在特定 named
目的地形成一个新的消费者组。
还有1个案例要补充
假设您要创建一个流,该流不是来自现有流的出站端点,而是要指向特定的 named
目标,该目标具有来自其他系统的数据。在这些情况下,您将使用 named
目标来创建流。由于 Spring Cloud Stream 的消费者组模型,您还将在此 named
目标上创建一个新的消费者组。
例如,假设我有一个 RabbitMQ 交换器或一个名为 user_data
的 Kafka 主题,它已经从不属于 SCDF 流的其他来源接收数据,那么您将创建一个新的流,如下所示:
:user_data > transform | jdbc
前缀 :
用于引用 SCDF 中的命名目标。
我正在尝试理解 Spring Cloud Stream 中的概念。 “tap”和“named destination”这两个概念让我很困惑。
我正在尝试创建一个带有名为“some-source”的分流器的流:
然而,在我保存流后,它变成了“命名目的地”:
我的问题是:
- “点击”和“指定目的地”有什么区别?
- 为什么在保存流后“点击”会变成“指定目标”?
A named
目的地是消息传递系统中的目的地。例如,RabbitMQ 的 exchange
或 Apache Kafka 的 topic
。
Spring 当您将 inbound/outbound 绑定设置为特定目标名称时,Cloud Stream 负责创建这些 named
目标(例如 RabbitMQ 交换、Apache Kafka 主题)。
在 SCDF 中,当您创建流时,SCDF 使用特定语法配置这些目标名称 (.
例如,假设我创建了这样一个流:
S1=时间 | t1:变换 |日志
部署流 S1
后,您将看到使用以下名称创建的目的地(如果您使用 RabbitMQ 或 Apache Kafka,则它们将分别交换或主题):
S1.time S1.t1
因为time
和transform
是生产者。
回答您的问题:
What's the difference between a "tap" and a "named destination"?
在 SCDF 中,tap
本质上是在生产者应用程序的出站端点上创建的 named
目的地。因此,当您在流 S1 的 time
输出上添加一个 tap 时,您将最终使用 named
目的地 S1.time
.
您可以在创建主流时(此处为 S1)创建 tap
,也可以稍后通过引用流的命名目标来创建新的 tap
流(此处S1.time,S1.t1)
Why would a "tap" become a "named destination" after saving the stream?
Spring Cloud Stream 有一个消费者组模型(灵感来自 Apache Kafka),它在它支持的所有绑定器中实现。这意味着,每当一个新的消费者绑定到消息系统的 destination
(比如 RabbitMQ 的 exchange
或 Apache Kafka 的 topic
)时,一个新的消费者组是为该目的地创建的。 tap
只是创建一个新流,在特定 named
目的地形成一个新的消费者组。
还有1个案例要补充
假设您要创建一个流,该流不是来自现有流的出站端点,而是要指向特定的 named
目标,该目标具有来自其他系统的数据。在这些情况下,您将使用 named
目标来创建流。由于 Spring Cloud Stream 的消费者组模型,您还将在此 named
目标上创建一个新的消费者组。
例如,假设我有一个 RabbitMQ 交换器或一个名为 user_data
的 Kafka 主题,它已经从不属于 SCDF 流的其他来源接收数据,那么您将创建一个新的流,如下所示:
:user_data > transform | jdbc
前缀 :
用于引用 SCDF 中的命名目标。