【问题标题】:Using Kafka with Netflix Conductor将 Kafka 与 Netflix Conductor 一起使用
【发布时间】:2019-01-09 10:21:40
【问题描述】:
我想知道是否有一种简单的方法可以连接 Kafka 和 Netflix Conductor(而不是 SQS)?目前,它似乎只适用于 Amazon SQS。此外,似乎只能按任务执行一项操作。有没有办法按任务执行多个操作?
提前致谢,
【问题讨论】:
标签:
apache-kafka
workflow
netflix
netflix-conductor
【解决方案1】:
要将 Kafka 支持添加到 Netflix Conductor,您需要
- 在 contribs 中创建一个扩展 AbstractModule 的模块(在您的 server.properties 中添加一个条目,以对抗conductor.additional.modules 属性)
- 为 kafka 生产者和消费者操作实现 ObservableQueue。
- 像 SQS 实现一样实现 EventQueueProvider
- 在 server.properties 中为您的 kafka 初始化添加属性
kafka.producer.bootstrap.servers=host1:port1;host2:port2
kafka.producer.key.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.producer.value.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.consumer.bootstrap.servers=host1:port1;host2:port2
kafka.consumer.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
kafka.consumer.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
- 通过更新 contribs 模块的 build.gradle 为项目添加 kafka 库支持。
参考下面的 PR 链接实现(作者 preeth-gopalakrishnan)
https://github.com/Netflix/conductor/pull/672
(如果没有找到PR,则假设它已合并到master)