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 源码的主要内容,如果未能解决你的问题,请参考以下文章