Spring Cloud 数据流中的 Kafka 源码

Posted

技术标签:

【中文标题】Spring Cloud 数据流中的 Kafka 源码【英文标题】:Kafka Source in Spring Cloud Data Flow 【发布时间】:2016-11-27 15:39:26 【问题描述】:

我正在从 Spring XD 迁移到 Spring Cloud Data Flow。当我在寻找模块列表时,我意识到 Spring Cloud Flow 中没有列出一些源 - 其中之一是 KAFKA 源。

我的问题是为什么从 Spring Cloud 数据流中的标准源列表中删除了 KAFKA 源?

【问题讨论】:

【参考方案1】:

当我在寻找模块列表时,我意识到 Spring Cloud Flow 中没有列出一些源

大部分应用程序已移植,其余应用程序的优先级递增 - 您可以跟踪 backlog 中的剩余子集。

我的问题是为什么从 Spring Cloud 数据流中的标准源列表中删除了 KAFKA 源?

Kafka 并没有被删除,事实上,我们在流式用例的上下文中对 Kafka 非常有意见,以至于它直接融入了 DSL。更多详情here。

例如,

(i) 如果您必须使用 Kafka 主题(作为来源),您的流定义将是:

stream create --definition ":someAwesomeTopic > log" --name subscribe_to_broker --deploy

(ii) 如果您必须写入 Kafka 主题(作为接收器),您的流定义将是:

stream create --definition "http --server.port=9001 > :someAwesomeTopic" --name publish_to_broker --deploy

(其中 *someAwesomeTopic* 是指定的目的地,一个主题名称)

【讨论】:

任何如何做到这一点的工作示例?,我编写了一个非常简单的控制台应用程序,它使用 kafka 生产者发送字符串“testme”并连接一个流以将其沙化到一个文件中,它尝试转换消息失败:oscsbkKafkaMessageChannelBinder:无法转换消息:746573746D65。这个数字是消息“testme”的ASCII表示 我假设这个 DSL 快捷方式使用数据流服务器本身用作流代理的相同 Kafka 集群。这与使用来自某些 Kafka 集群的消息并不完全相同。这对于同时具有源和接收器流应用程序的 RabbitMQ 是可能的。但令人惊讶的是,Kafka 却不见了。

以上是关于Spring Cloud 数据流中的 Kafka 源码的主要内容,如果未能解决你的问题,请参考以下文章

带有Spring Cloud Stream的Kafka Streams进程中的Serd错误

我们如何在 Spring cloud dataflow kafka binder 中为 Kafka 维护租户数据隔离?

Spring Kafka/Spring Cloud Stream 如何保证涉及数据库和 Kafka 的事务性/原子性?

将Kafka Streams代码迁移到Spring Cloud Stream吗?

spring.cloud.stream.kafka.bindings.<channelName>.producer.configuration 未应用

使用 Spring Cloud Bus Kafka 的多个实例