将 Kafka 与 Netflix Conductor 结合使用

nic*_*lsa 5 workflow netflix apache-kafka netflix-conductor

我想知道是否有一种简单的方法可以连接 Kafka 和 Netflix Conductor(而不是 SQS)?目前,它似乎仅适用于 Amazon SQS。而且,似乎一个任务只能做出一个动作。有没有一种方法可以按任务执行多个操作?

提前致谢,

小智 0

要将 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
  • 通过更新 contribs 模块的 build.gradle 为项目添加 kafka 库支持。

请参阅以下 PR 链接进行实施(作者:preeth-gopalakrishnan)

https://github.com/Netflix/conductor/pull/672

(如果没有找到PR,假设它已经合并到master上了)